1、为什么使用UIScrollView
因为移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限,当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容普通的UIView不具备滚动功能,不能显示过多的内容,UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容。
2、UIScrollView的最常用的熟性
1)CGPoint contentOffset:该属性是表示UIScrollView的初始滚动的位置
2)contentSize:该属性用来表示UIScrollView内容的尺寸,具体的滚动范围(width,height)
3)UIEdgeInsets contentInset:该属性从来表示UIScrollView的上下左右的额外滚动范围
3、其他一些属性
@property(nonatomic) BOOL bounces;
设置UIScrollView是否需要弹簧效果
@property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;
设置UIScrollView是否能滚动
@property(nonatomic) BOOL showsHorizontalScrollIndicator;
是否显示水平滚动条
@property(nonatomic) BOOL showsVerticalScrollIndicator;
是否显示垂直滚动条
4、UIScrollView的代理
1)scrollViewWillBeginDragging:当用户开始拖拽时调用该方法
2)scrollViewDidScroll:当具体滚动到某一位置时调用该方法(用得最多)
3)scrollViewDidEndDragging:willDecelerate:当用户停止拖拽时调用该方法
5、代码演示
//具体的滚动范围
_fzhScrollView.contentSize = _fzhImageView.frame.size;
//四周额外滚动范围
_fzhScrollView.contentInset = UIEdgeInsetsMake(, , , );
//初始的滚动点
// _fzhScrollView.contentOffset = CGPointMake(10, 10);
//设置滚动条是否显示
_fzhScrollView.showsHorizontalScrollIndicator = NO;
_fzhScrollView.showsVerticalScrollIndicator = NO;
//设置代理
_fzhScrollView.delegate = self;
6、输出结果:
2016-03-17 15:47:56.538 01-UIScrollView[4049:225106] scrollViewDidScroll
2016-03-17 15:47:56.562 01-UIScrollView[4049:225106] scrollViewDidScroll
2016-03-17 15:47:57.052 01-UIScrollView[4049:225106] scrollViewDidScroll
2016-03-17 15:47:57.060 01-UIScrollView[4049:225106] scrollViewDidEndDragging
7、demo现在地址:
https://github.com/fengzhihao123/01-UIScrollView