//UIScrollView是可以滚动的view,UIView本身不能滚动,子类UIScrollview拓展了滚动方面的功能。
//UIScrollView是所有滚动视图的基类。以后的UITableView,UITextView等视图都是继承于该类。
//使用场景:显示不下(单张大图);内容太多(图文混排);滚动头条(图片);相册等
UIScrollView核心功能
//UIScrollview主要专长于两个方面:
//滚动:contentSize大于frame.size的时候,能够滚动。
//缩放:自带缩放,可以指定缩放倍数。
//UIScrollView是所有滚动视图的基类。以后的UITableView,UITextView等视图都是继承于该类。
//使用场景:显示不下(单张大图);内容太多(图文混排);滚动头条(图片);相册等
UIScrollView核心功能
//UIScrollview主要专长于两个方面:
//滚动:contentSize大于frame.size的时候,能够滚动。
//缩放:自带缩放,可以指定缩放倍数。
/*
UIScrollView做自动布局
1.首先要确定UIScrollView滚动范围,如果不确定,只要添加控件就会把错
2.拖入一个view,让这个view确定UIScrollView滚动范围,宽高都要确定
2.1 UIScrollView水平滚动区域 view的左右两边间距 + view宽度
2.2 UIScrollView垂直滚动区域 view的上下两边间距 + view高度
注意:如果UIScrollView滚动区域,已经确定了,就不能在弄一个view去确定
UIScrollView做自动布局
1.首先要确定UIScrollView滚动范围,如果不确定,只要添加控件就会把错
2.拖入一个view,让这个view确定UIScrollView滚动范围,宽高都要确定
2.1 UIScrollView水平滚动区域 view的左右两边间距 + view宽度
2.2 UIScrollView垂直滚动区域 view的上下两边间距 + view高度
注意:如果UIScrollView滚动区域,已经确定了,就不能在弄一个view去确定
*/
UIScrollView的属性总结
属性 作用
CGPoint contentOffSet 监控目前滚动的位置
CGSize contentSize 滚动范围的大小
UIEdgeInsets contentInset 视图在scrollView中的位置
属性 作用
CGPoint contentOffSet 监控目前滚动的位置
CGSize contentSize 滚动范围的大小
UIEdgeInsets contentInset 视图在scrollView中的位置
id<UIScrollerViewDelegate>delegate 设置协议
BOOL directionalLockEnabled 指定控件是否只能在一个方向上滚动
BOOL bounces 控制控件遇到边框是否反弹
BOOL alwaysBounceVertical 控制垂直方向遇到边框是否反弹
BOOL alwaysBounceHorizontal 控制水平方向遇到边框是否反弹
BOOL bounces 控制控件遇到边框是否反弹
BOOL alwaysBounceVertical 控制垂直方向遇到边框是否反弹
BOOL alwaysBounceHorizontal 控制水平方向遇到边框是否反弹
BOOL pagingEnabled 控制控件是否整页翻动
BOOL scrollEnabled 控制控件是否能滚动
BOOL showsHorizontalScrollIndicator 控制是否显示水平方向的滚动条
BOOL showsVerticalScrollIndicator 控制是否显示垂直方向的滚动条
UIEdgeInsets scrollIndicatorInsets 指定滚动条在scrollerView中的位置
UIScrollViewIndicatorStyleindicatorStyle 设定滚动条的样式
float decelerationRate 改变scrollerView的减速点位置
BOOL tracking 监控当前目标是否正在被跟踪
BOOL dragging 监控当前目标是否正在被拖拽
BOOL decelerating 监控当前目标是否正在减速
BOOL delaysContentTouches 控制视图是否延时调用开始滚动的方法
BOOL canCancelContentTouches 控制控件是否接触取消touch的事件
float minimumZoomScale 缩小的最小比例
float maximumZoomScale 放大的最大比例
float zoomScale 设置变化比例
BOOL bouncesZoom 控制缩放的时候是否会反弹
BOOL zooming 判断控件的大小是否正在改变
BOOL zoomBouncing 判断是否正在进行缩放反弹
BOOL scrollsToTop 控制控件滚动到顶部
这里把UIScrollView的几个要点总结下:
从你的手指touch屏幕开始,scrollView开始一个timer,如果:
1. 150ms内如果你的手指没有任何动作,消息就会传给subView。
2. 150ms内手指有明显的滑动(一个swipe动作),scrollView就会滚动,消息不会传给subView,这里就是产生问题二的原因。
3. 150ms内手指没有滑动,scrollView将消息传给subView,但是之后手指开始滑动,scrollView传送touchesCancelled消息给subView,然后开始滚动。
观察下tableView的情况,你先按住一个cell,cell开始高亮,手不要放开,开始滑动,tableView开始滚动,高亮取消。
BOOL tracking 监控当前目标是否正在被跟踪
BOOL dragging 监控当前目标是否正在被拖拽
BOOL decelerating 监控当前目标是否正在减速
BOOL delaysContentTouches 控制视图是否延时调用开始滚动的方法
BOOL canCancelContentTouches 控制控件是否接触取消touch的事件
float minimumZoomScale 缩小的最小比例
float maximumZoomScale 放大的最大比例
float zoomScale 设置变化比例
BOOL bouncesZoom 控制缩放的时候是否会反弹
BOOL zooming 判断控件的大小是否正在改变
BOOL zoomBouncing 判断是否正在进行缩放反弹
BOOL scrollsToTop 控制控件滚动到顶部
这里把UIScrollView的几个要点总结下:
从你的手指touch屏幕开始,scrollView开始一个timer,如果:
1. 150ms内如果你的手指没有任何动作,消息就会传给subView。
2. 150ms内手指有明显的滑动(一个swipe动作),scrollView就会滚动,消息不会传给subView,这里就是产生问题二的原因。
3. 150ms内手指没有滑动,scrollView将消息传给subView,但是之后手指开始滑动,scrollView传送touchesCancelled消息给subView,然后开始滚动。
观察下tableView的情况,你先按住一个cell,cell开始高亮,手不要放开,开始滑动,tableView开始滚动,高亮取消。
delaysContentTouches的作用:
这个标志默认是YES,使用上面的150ms的timer,如果设置为NO,touch事件立即传递给subView,不会有150ms的等待。
这个标志默认是YES,使用上面的150ms的timer,如果设置为NO,touch事件立即传递给subView,不会有150ms的等待。
cancelsTouches的作用:
这个标准默认为YES,如果设置为NO,这消息一旦传递给subView,这scroll事件不会再发生。
UIScrollView滚动相关属性
contentSize //定义内容区域大小,决定是否能够滑动
contentOffset //视图左上角距离坐标原点的偏移量
scrollsToTop //滑动到顶部(点状态条的时候)
pagingEnabled //是否整屏翻动
bounces //边界是否回弹
scrollEnabled //是否能够滚动
showsHorizontalScrollIndicator //控制是否显示水平方向的滚动条
showVerticalScrollIndicator //控制是否显示垂直方向的滚动条
alwaysBounceVertical //控制垂直方向遇到边框是否反弹
alwaysBounceHorizontal //控制水平方向遇到边框是否反弹
UIScrollView缩放相关属性
minimumZoomScale // 缩小的最小比例
maximumZoomScale //放大的最大比例
zoomScale //设置变化比例
zooming //判断是否正在进行缩放反弹
bouncesZoom //控制缩放的时候是否会反弹
要实现缩放,还需要实现delegate,指定缩放的视图是谁.
二、UIScrollView的常用代理方法
UIScrollView滚动代理方法
contentSize //定义内容区域大小,决定是否能够滑动
contentOffset //视图左上角距离坐标原点的偏移量
scrollsToTop //滑动到顶部(点状态条的时候)
pagingEnabled //是否整屏翻动
bounces //边界是否回弹
scrollEnabled //是否能够滚动
showsHorizontalScrollIndicator //控制是否显示水平方向的滚动条
showVerticalScrollIndicator //控制是否显示垂直方向的滚动条
alwaysBounceVertical //控制垂直方向遇到边框是否反弹
alwaysBounceHorizontal //控制水平方向遇到边框是否反弹
UIScrollView缩放相关属性
minimumZoomScale // 缩小的最小比例
maximumZoomScale //放大的最大比例
zoomScale //设置变化比例
zooming //判断是否正在进行缩放反弹
bouncesZoom //控制缩放的时候是否会反弹
要实现缩放,还需要实现delegate,指定缩放的视图是谁.
二、UIScrollView的常用代理方法
UIScrollView滚动代理方法
UIScrollView缩放代理方法
三、UIPageControl的使用
UIPageControl与UILabel相似
用于指示当前第几页(代码)
通常与UIScrollView配合使用
currentPage //当前页
numberOfPages //指定页面的个数
//UIPageControl从类名中可以看出,其父类是UIControl 。
//所以可以像button一样添加事件,只不过事件触发使用的不是UIControlEventsTouchUpInside而是UIControlEventsValueChanged。
四、UIPageControl与UIScrollView的结合使用
//通常在Scrollview滚动的时候修改pageControl的currentPage
//使用场景:
//引导页
//首页的轮播图等
总结
//contentSize决定了scrollView能否滚动,contentOffset控制内容区域的偏移量,pageEnabled控制能否整页滚动。
//scrollView实现缩放需要指定最大缩放系数,最小缩放系数,并指定缩放的视图。
UIPageControl与UILabel相似
用于指示当前第几页(代码)
通常与UIScrollView配合使用
currentPage //当前页
numberOfPages //指定页面的个数
//UIPageControl从类名中可以看出,其父类是UIControl 。
//所以可以像button一样添加事件,只不过事件触发使用的不是UIControlEventsTouchUpInside而是UIControlEventsValueChanged。
四、UIPageControl与UIScrollView的结合使用
//通常在Scrollview滚动的时候修改pageControl的currentPage
//使用场景:
//引导页
//首页的轮播图等
总结
//contentSize决定了scrollView能否滚动,contentOffset控制内容区域的偏移量,pageEnabled控制能否整页滚动。
//scrollView实现缩放需要指定最大缩放系数,最小缩放系数,并指定缩放的视图。
//pageControl不单独使用,通常与scrollView结合使用。