UIScrollView 滚动视图
UIScrollView 继承与UIView,是所有滚动视图的基类,UITableView和UITextView都是继承于该类。
使用场景:现实不下(单张大图); 内容太多(图文混排), 需要滚动; 滚动头条(图片), 相册等;
创建一个UIScrollView在设定frame和background之后,还要指定滚动的距离,通常要比frame大很多,使用ContentSize来设置滚动,给定一个CGSize来确定滚动范围。
// ScrollView Demo
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(20, 20, 280, 40)];
[scrollView setBackground:[UIColor grayColor]];
[scrollView setContentSize:CGSizeMake(2000, 2000)];// 设置滚动范围
/// 区分下面两个设置
[scrollView setContentOffset:CGPointMake(100, 100)];// 设置偏移量
[scrollView setContentInset:UIEdgeInsetsMake(100, 100, 100, 100)];// 内容边距 上左下右
/// 常用设置
[scrollView setPagingEnabled:YES];// 整屏翻动
[scrollView setScrollToTop:YES];// 点击最上方的状态栏返回top
[scrollView setScrollEnabled:YES];// scrollView是否可用
[scrollView setBounces:YES];// 回弹效果
[scrollView setDirectionalLockEnabled:YES];// 滚动锁定,只能垂直方向或者水平方向滚动
/// 缩放设置
[scrollView setMinimumZoomScale:0.5];// 缩放最小范围
[scrollView setMaximumZoomScale:2];// 缩放最大范围
[scrollView setBouncesZoom:YES];// 缩放反弹
[self.view addSubview:scrollView];
[scrollView release];
UIScrollView 滚动常用属性
contentSize 定义内容区域大小,决定是否能够滑动
contentOffset 屏幕左上角距离坐标原点的偏移量
scrollsToTop 滑动到顶部(点击状态条时)
pagingEnabled 是否整屏翻动
bounces 边界是否回弹
scrollEnabled 判断控件是否能够滚动
showsHorizontalScrollIndicator 控制是否显示水平方向的滚动条
showsVerticalScrollIndicator 控制是否显示垂直方向的滚动条
alwaysBounceVertical 控制垂直方向遇到边框是否反弹
alwaysBounceHorizontal 控制水平方向遇到边框是否反弹
UIScrollView 缩放常用属性
minimumZoomScale 缩小的最小比例
maximumZoomScale 放大的最大比例
zoomScale 设置变化比例
zooming 判断是否正在进行缩放反弹
bouncesZoom 控制缩放的时候是否会反弹
UIScrollViewDelegate 滚动代理方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView 滚动就会触发
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 开始拖拽时触发
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate 结束拖拽时触发
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView 开始减速时触发
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 结束减速时触发
UIScrollViewDelegate 缩放代理方法
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale 完成放大缩小触发
- (void)viewForZoomingInScrollView:(UIScrollView *)scrollView 指定某个UIScrollView的子视图可以被放大缩小