UIScrollView 与 UIPageView 的联合使用
{
UIScrollView * scrollView;
UIPageControl * pageControl;
// BOOL pageControlIsChangingPage;
NSMutableArray * images;
}
//- (void)changePage:(id)sender;
- (void)setupPage;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = [UIColor blackColor];
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];
pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 410, 320, 36)];
images = [NSMutableArray arrayWithObjects:@"h1.jpeg",@"h2.jpeg",@"h3.jpeg",@"h4.jpeg",@"h5.jpeg",@"h6.jpeg",@"h7.jpeg",@"h8.jpeg", nil];
[self.view addSubview:scrollView];
[self.view addSubview:pageControl];
[self setupPage];
}
////多余的方法
//- (void)changePage:(id)sender
//{
//
// NSLog(@"%s",__func__);
// CGRect frame = scrollView.frame;
//
// frame.origin.x = frame.size.width * pageControl.currentPage;
// frame.origin.y = 0;
//
// [scrollView scrollRectToVisible:frame animated:YES];
//
// pageControlIsChangingPage = YES;
//
//}
- (void)setupPage
{
NSLog(@"%s",__func__);
scrollView.delegate = self;
[scrollView setBackgroundColor: [UIColor blackColor]];
//
[scrollView setCanCancelContentTouches:NO];
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite ;
// //
// scrollView.clipsToBounds = YES;
//
// scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;
// //
// scrollView.directionalLockEnabled = YES;
//
//隐藏滚动条
scrollView.alwaysBounceVertical = NO;
scrollView.alwaysBounceHorizontal = NO;
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = NO;
NSInteger nimages = 0;
CGFloat cx = 0 ;//定义下一幅图片的的坐标
//循环导入图片
for(NSString * imagePath in images)
{
// UIImageView * imageView = [[[UIImageView alloc] initWithFrame:CGRectZero]autorelease];
//
// [imageView setBackgroundColor: [UIColor colorWithRed:.6 green:.6 blue:.6 alpha:1.0]];
//
// UIImage * image = [UIImage imageNamed:imagePath];
//
// [imageView setImage:image];
UIImageView * imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imagePath]];
CGRect rect = scrollView.frame;
rect.size.height = scrollView.frame.size.height;
rect.size.width = scrollView.frame.size.width;
rect.origin.x = cx;
rect.origin.y = 0;
imageView.frame = rect;
imageView.contentMode = UIViewContentModeScaleAspectFill;
[scrollView addSubview:imageView];
cx += scrollView.frame.size.width;
nimages ++;
}
// //不必要的事件
// [pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];
pageControl.currentPage = 0;
pageControl.numberOfPages = nimages;
pageControl.tag = 0;
[scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];
}
//scrollViewkai
- (void)scrollViewDidScroll:(UIScrollView *)_scrollView
{
NSLog(@"%s",__func__);
// if(pageControlIsChangingPage)
// {
// return;
// }
//画面拖动超过百分之五十进行切换
//返回page的值
CGFloat pageWidth = _scrollView.frame.size.width;
//函数名: floor 功 能: 返回小于或者等于指定表达式的最大整数
//函数名: ceil 功 能: 返回大于或者等于指定表达式的最小整数
int page = floor((_scrollView.contentOffset.x - pageWidth/2)/pageWidth)+1;
pageControl.currentPage = page;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"%s",__func__);
// pageControlIsChangingPage = NO;
}
- (void)dealloc
{
[images release];
[scrollView release];
[pageControl release];
[super dealloc];
}
UIScrollView 与 UIPageView 的联合使用的更多相关文章
- Dynamics CRM 之ADFS 使用 WID 的独立联合服务器
ADFS 的使用 WID 的独立联合服务器适用于自己的测试环境,常用的就是在虚机中使用. 拓扑图如下: wID:联合身份验证服务配置为使用 Windows 内部数据库
- Dynamics CRM 之ADFS 使用 WID 的联合服务器场
使用 WID 的联合服务器场 默认拓扑 Active Directory 联合身份验证服务 (AD FS) 是联合服务器场,使用 Windows 内部数据库 (WID). 在这种拓扑, AD FS 使 ...
- 【原】Masonry+UIScrollView的使用注意事项
[原]Masonry+UIScrollView的使用注意事项 本文转载请注明出处 —— polobymulberry-博客园 1.问题描述 我想实现的使用在一个UIScrollView依次添加三个UI ...
- Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/A ...
- Federated Identity Pattern 联合身份模式
Delegate authentication to an external identity provider. This pattern can simplify development, min ...
- [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合
[占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合 Datasets can often contain components of that require differe ...
- SQL联合查询:子表任一记录与主表联合查询
今天有网友群里提了这样一个关于SQL联合查询的需求: 一.有热心网友的方案: 二.我的方案: select * from ( select a.*,(select top 1 Id from B as ...
- Dynamics CRM 之ADFS 使用 SQL Server 的联合服务器场
此拓扑用于 Active Directory 联合身份验证服务 (AD FS) 不同于使用 Windows 内部数据库 (WID) 部署拓扑,因为不会将数据复制到每台联合服务器场中的联合身份验证服务器 ...
- Dynamics CRM 之ADFS 使用 WID 和代理的联合服务器场
为此部署拓扑 Active Directory 联合身份验证服务 (AD FS) 等同于联合服务器场与 Windows 内部数据库 (WID) 拓扑中,但它将代理服务器计算机添加到外围网络,以支持外部 ...
随机推荐
- 【转】android camera(三):camera V4L2 FIMC
关键词:android camera CMM 模组 camera参数 CAMIF V4L2 平台信息:内核:linux系统:android 平台:S5PV310(samsung exynos ...
- [Java Web]Struts2解决中文乱码问题
1.设置struts的字符编码,能够在struts.xml中添加下面代码: <constant name="struts.i18n.encoding" value=" ...
- 标准linuxserver搭建
一:针对大数据平台的linux例如以下搭建.为了方便截图,採用的虚拟机,与真实环境有点出入 二:过程例如以下 1. 在vmware中选择载入虚拟光盘iso文件,然后进入安装 2. 默认选择第一项 In ...
- Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8201936 在前文中,我们简要介绍了Andro ...
- web前端技术归类
1.以屏幕可用宽和高的百分比来定义弹出框的宽和高 var trueWidth = $(top.window).width() * 0.9;var trueHeight = $(top.window). ...
- Http 信息头
Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET.POST.PUT.DELETE.一个URL地址用于描述一个网络上的资源,而HTTP中的GET.POST.PUT. DELETE就 ...
- G - 密码 kmp、贪心、manachar等等等等
G - 密码 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu Submit Status ...
- onbeforepaste
onbeforepaste事件用法 onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').rep ...
- Android 真机调试显示offline
今天调试程序部署的时候显示设备状态时offline. 然后突然想起来我通过命令行操作过设备. 然后找来一下,如下命令. adb kill-server adb devices
- javascript中,数组常用的方法有哪些?
答案: push pop shift unshift join sort concat reverse splice slice indexOf