UIPageControl与UIScrollView的联合使用
来源:互联网 发布:java常用包和类 编辑:程序博客网 时间:2024/04/27 20:00
当做自己的学习笔记,如果对您有帮助,那太好啦,误导了您也请多见谅,有错误的地方请大家指正!
其实两者并没有什么联系,可以自己主动连接。
首先介绍一下 UIPageControl
pageControl 点的个数通过numberOfPage来设置,但是我们发现,无论给pageControl设置多少的大小,pageContro的显示还是根据点数来的。
如:
pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(150, 159, 0, 0)];
pageControl.numberOfPages = 4;
这样创建出来的pageContro还是会显示四个点,但是!!!这些点是不能点的,也就是不能切换,因为pageControl自己的大小都没有。
其实pageControl是有大小的,给它设置一个背景颜色,可以发现pageControl设置的大小区域是有颜色的。
<span style="white-space:pre"></span> pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(150, 667-20, 75, 20)]; <span style="white-space:pre"></span> pageControl.backgroundColor = [UIColor blackColor];pageControl的中亮着的小圆点为currentPage,表示当前页面。一般默认是停在第0页(哪怕它真的是第一页,程序员都是从0开始的)。
UIPageControl的父类是UIControl,这个东西跟UIButton是兄弟。既然跟button是兄弟,那肯定也能添加事件啦,这里主要用到的事件是:UIControlEventValueChanged。
UIScrollView 的介绍
UIScrollView 是一个视图,可以通过滑动手势来显示更多的内容。视图都要有CGRect,就是它本身的大小和坐标。它还有一个很重要的属性 contentsize,是UIScrollView里的内容。pageEnabled(BOOL类型),默认为NO,如果要分页设置为YES。
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];//创建一个200 * 200 的scrollView scrollView.contentSize = CGSizeMake(500, 500);//它的内容 是500 * 500,(如果是200 * 500,只能上下滑动,如果是500 * 200 ,只能左右滑动,如果是200 * 200 别划动了!) scrollView.pagingEnabled = YES;//是否分页?是! 分页的标准是按照 scrollView的大小分的,会整页显示。如这里是页面大小是 200 * 200,内容是500 * 500,那就是两页半,半这个东西很反人类,所有以后尽量设置整数页,最后半页因为填不满一个scrollView,会向它之前的那页借一半!// 再添加一个视图,如UIImageView UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)]; [scrollView addSubview:imageView];
还有一个重要的属性是contentOffset 即内容的偏移量,是一个CGPoint类型,有X方向的偏移量,Y方向的偏移量,这里指的都是与(0,0)之间偏移量,而不是与上一个位置之间的偏移量!
当然它还有很多基本的属性,什么隐藏滚动条啊,滚动条颜色,这里不过多介绍了,主要介绍如何连接UIScrollView和UIPageControl。
注意pageControl不能作为scrollView的子视图,两者要处于同级。
看一下下面一个简单的例程
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];//初始化scorllView scrollView.contentSize = CGSizeMake(400, 200);//设置内容大小 scrollView.pagingEnabled = YES;//我要分页!这里分了2页。 scrollView.delegate = self;//设置代理,后面的方法,包括 开始拖动是调用的,手指离开屏幕是调用,开始减速时调用等等,这里我用了减速停止时调用。这部分可以扩展很多,有兴趣的可以多研究研究。 [self.view addSubview:scrollView];// 为了使我们的程序加直观,我们需要两个群众演员~ UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; label1.backgroundColor = [UIColor redColor]; label1.text = @"我是第一页"; UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(200, 0, 200, 200)]; label2.backgroundColor = [UIColor greenColor]; label2.text = @"我是第二页"; [scrollView addSubview:label1]; [scrollView addSubview:label2];//演员已就位! pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(100+80, 100+180, 40, 20)];//初始化pageControl,这个坐标和大小根据它将要出现的位置来设定 pageControl.numberOfPages = 2;//页数为2 [pageControl addTarget:self action:@selector(PageChanged:) forControlEvents:UIControlEventValueChanged];//添加动作,即改变currentPage时的事件。 [self.view addSubview:pageControl];//pageControl也是添加在self.view上,与scroolView同级!! }- (void)PageChanged:(id)sender {//即改变currentPage时的事件。 [UIView beginAnimations:nil context:nil];//设置一个动作,否则看起来是瞬间移动的o(╯□╰)o [UIView setAnimationDuration:.5];//持续0.5秒 [scrollView setContentOffset:CGPointMake(pageControl.currentPage * 200, 0)];//设置偏移量,偏移量改变相对于scroll里的内容移动了。因为要移动整页,所有用pageControl.current*200来设置。 [UIView commitAnimations];//提交动作}#pragma mark -delegate //UIScrollView 的代理方法:当内容移动减速停止后调用此方法- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView1 {// 减速停止后内容肯定不会再有偏移,此时停留在哪一页就是哪一页。 pageControl.currentPage = scrollView.contentOffset.x/200;//设置currentPage的值,根据偏移量除以200,即可得到}
那么到这里我们就可以用pageControl的小圆点来控制页面的切换了,也可以通过滑动scrollView来改变小圆点的位置,建立起了练习!
0 0
- UIPageControl与UIScrollView的联合使用
- UIPageControl与UIScrollView的联合使用
- UIPageControl和UIScrollView的联合使用
- UIPageControl与UIScrollView的结合使用
- UIScrollView UIPageControl 的使用
- UIScrollView UIPageControl 的使用
- UIScrollView + UIPageControl的使用
- UIScrollView&UIPageControl的使用
- UIScrollView&UIPageControl的使用
- UIScrollView与UIPageControl结合使用
- UIScrollView,UIPageControl的结合使用
- UIPageControl+UIScrollView的简单使用
- UIScrollView及UIPageControl的使用
- UIScrollView, UIPageControl 的详细使用
- UIPageControl . UIScrollView UIPageControl 与 UIScrollView 的结合使⽤用
- UIPageControl的详细使用 (与uiscrollview配合使用)
- UIPageController与UIScrollView的联合使用
- UIPageController与UIScrollView的联合使用
- Redhat6.2升级为Redhat6.3 (linux内核升级)
- Combination Sum
- PostgreSQL function里面调用function
- 利用ListView实现新闻客户端的新闻内容图文混排
- TL 栈,队列,优先队列用法
- UIPageControl与UIScrollView的联合使用
- 给老师的建议只允许输入汉字,否则卡死一片~~
- Project Euler:Problem 16 Power digit sum
- Fedora10 配置使用root用户登录
- AVS+标准应用现状
- 四月,五月学习小结
- Combination Sum II
- ListView详解 (ListView图文混排)
- 五月英语总结——让英语成为生活的一部分