1.UIScrollView是一个能够滚动的视图控件,可以⽤用来展⽰示⼤大量的内容,并且可以通过滚动查看所有的内容
2.UIScrollView的简单使用
(1)将需要展⽰的内容添加到UIScrollView中
(2)设置UIScrollView的contentSize属性,告诉UIScrollView所有内容的尺⼨寸,也就是告诉 它滚动的范围(能滚多远,滚到哪⾥里是尽头)
3.属性
(1)常用属性:
1)@property(nonatomic)CGPoint contentOffset; 这个属性⽤用来表⽰示UIScrollView滚动的位置
2)@property(nonatomic)CGSize contentSize;这个属性⽤用来表⽰示UIScrollView内容的尺⼨寸,滚动范围(能滚多远)
3)@property(nonatomic)UIEdgeInsets contentInset; 这个属性能够在UIScrollView的4周增加额外的滚动区域
(2)其他属性:
1)@property(nonatomic) BOOL bounces; 设置UIScrollView是否需要弹簧效果
2)@property(nonatomic,getter=isScrollEnabled)BOOL scrollEnabled; 设置UIScrollView是否能滚动
3)@property(nonatomic) BOOL showsHorizontalScrollIndicator; 是否显⽰示⽔水平滚动条
4)@property(nonatomic) BOOL showsVerticalScrollIndicator; 是否显⽰示垂直滚动条
4.几个属性坐标示意图
contentoffset是个CGpoint类型的结构体,用来记录ScrollView的滚动位置,即记录着“框”跑到了哪里。知道了这个属性,就知道了其位置,可以通过设置这个属性来控制这个“框”的移动。
UIScrollView的frame与contentsize属性的区分:UIScrollView的frame指的是这个scrollview的可视范围(可看见的区域),contentsize是其滚动范围。
5 .UIScrollView的代理
在很多时候我们需要知道UIScrollView滚动到了那里,它是否停止,那些时候来做一些特定的操作,要想完成那些特定的动作进行时的功能,前提就是能够监听到UIScrollView整个滚动的过程
要想监听整个UIScrollView的滚动过程,就必须给它设置一个代理对象,通过代理得知UIScrollView的滚动过程
UIScrollView和delegate的通信
UIScrollView和delegate的通信应该如下表:
手势 | 方法 |
开始拖拽 | scrollViewWillBeginDragging: |
具体到某个位置 | scrollViewDidScroll: |
用户停止拖拽 | scrollViewDidEndDragging:willDecelerate: |
UIScrollView需要实现的方法都定义在UIScrollViewDelegate协议中,遵守协议后,实现协议中的方法就可以监听UIScrollView的滚动过程
6.分页
只要将UIScrollView的pageEnable属性设置为YES,UIScrollView会被分割成多个独立页面,里面的内容就能进行分页展示
一般会配合UIPageControl增强分页效果,UIPageControl常用属性如下:
一共有多少页
@property (nonatomic) NSInteger numberOfPages;
当前显示的页码
@property (nonatomic) NSInteger currentPage;
只有一页的时候,是否需要隐藏页码指示器
@property (nonatomic)BOOL hidesForSinglePage;
其他页码的颜色
@property (nonatomic,retain) UIColor *pageIndicatorTintColor;
当前页码指示器的颜色
@property (nonatomic,retain) UIColor *currentPageIndicatorTintColor;