- UIScrollView有两个子控件-UIImageView,滚动条,所有不要在里面判断子控件
滚动scrollView,其实本质滚动内容 => 改scrollView的bounds,其bounds就是偏移量,显示区域也是bounds的区域
注意iOS7以后,导航控制器中scollView顶部会添加64的额外滚动区域
//self表示控制器,存放scollView的控制器
self.automaticallyAdjustsScrollViewInsets = NO;
- 设置UIScrollView的contentSize属性,告诉UIScrollView所有内容的尺寸,也就是告诉它滚动的范围,比如,Y不能滚动的时候设置为0
- UIScrollView做自动布局: 首先确定scrollView滚动范围 => 如何在stroboard对scrollView确定滚动范围 => 搞一个专门view去确定scrollView的滚动范围 => 如何确定:水平 和 垂直方向 => scrollView水平能否滚动: view的宽度 + 左右两边间距 才能确定scrollView水平滚动区域 => 垂直 = view的高度 + 上下两边间距
UIScrollView无法滚动
1、没有设置contentSize,比如,Y不能滚动的时候设置为0
2、scrollEnabled = NO
3、没有接收到触摸事件:userInteractionEnabled = NO
UIScrollView的常见属性
UIScrollView的常见属性
滚动的偏移量 :contentOffset;-注意没有偏移量的时候为0
UIScrollView内容的尺寸,滚动范围 : contentSize; 这个属性用来表示(能滚多远),没有偏移量的时候用0表示
UIScrollView的4周增加额外的滚动区域 : contentInset; 这个属性能够在,一般用来避免scrollView的内容被其他控件挡住
弹簧效果: bounces;
是否能滚动: scrollEnabled;
是否显示水平滚动条:showsHorizontalScrollIndicator;
是否显示垂直滚动条: showsVerticalScrollIndicator;
UIScrollView的代理
scrollViewDidScroll: 滚动视图滚动时使用 scrollViewDidEndDecelerating: 滚动视图停止滚动时使用 scrollViewWillEndDragging: 滚动视图停止拖拽时使用
缩放实现
1、设置UIScrollView的delegate代理对象
2、设置minimumZoomScale :缩小的最小比例
3、设置maximumZoomScale :放大的最大比例
4、让代理对象实现下面的方法,返回需要缩放的视图控件
分页
一共有多少页 :numberOfPages;
当前显示的页码: currentPage;
只有一页时,是否需要隐藏页码指示器: hidesForSinglePage;
其他页码指示器的颜色:pageIndicatorTintColor;
当前页码指示器的颜色:currentPageIndicatorTintColor;
方法&&属性
// 监控目前滚动的位置(默认CGPointZero)
CGPoint contentOffset;
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated;
// 滚动范围的大小(默认CGSizeZero)
CGSize contentSize;
// 视图在scrollView中的位置(UIEdgeInsetsZero)
UIEdgeInsets contentInset;
// 设置协议
id
// 指定控件是否只能在一个方向上滚动(默认为NO)
BOOL directionalLockEnabled;
// 控制控件遇到边框是否反弹(默认为YES)
BOOL bounces;
// 控制垂直方向遇到边框是否反弹(默认为NO,如果为YES,bounces也是YES)
BOOL alwaysBounceVertical;
// 控制水平方向遇到边框是否反弹(默认为NO,如果为YES,bounces也是YES)
BOOL alwaysBounceHorizontal;
// 控制控件是否整页翻动(默认为NO)
BOOL pagingEnabled;
// 控制控件是否能滚动
BOOL scrollEnabled;
// 控制是否显示水平方向的滚动条
BOOL showsHorizontalScrollIndicator;
// 控制是否显示垂直方向的滚动条
BOOL showsVerticalScrollIndicator;
// 指定滚动条在scrollerView中的位置
// 设定滚动条的样式