UIScrollView它是一个视图,然后它是一个可以选择滑动的视图,用与显示更多的内容
其次,通过scrollView可以通过手势,放大或者缩小显示的内容UIScrollView包含两个子类,其中一个就是UITableView,因此,表视图的可以实现滑动视图的所有行为
创建一个UIScrollView实例
// 创建一个UIScrollView实例
CGRect frame = CGRectMake( 0, 0, 200, 200);
UIScrollView *scrollView= [[UIScrollView alloc] initWithFrame:frame];
// 添加子视图(框架可以超过scrollview的边界)
frame= CGRectMake( 0, 0, 500, 500);
UIImageView *myImageView= [[UIImageView alloc] initWithFrame:frame];
[scrollView addSubview:myImageView];
// 设置内容尺寸
scrollView.contentSize = CGSize(500,500);
UIScrollView常用属性
contentSize
// 里面内容的大小,也就是可以滚动的大小,默认是0,没有滚动效果。
tracking
// 当 touch 后还没有拖动的时候值是YES,否则NO
zoomBouncing
// 当内容放大到最大或者最小的时候值是 YES,否则 NO
zooming
// 当正在缩放的时候值是 YES,否则 NO
decelerating
// 当滚动后,手指放开但是还在继续滚动中。这个时候是 YES,其它时候是 NO
decelerationRate
// 设置手指放开后的减速率
maximumZoomScale
// 一个浮点数,表示能放最大的倍数
minimumZoomScale
// 一个浮点数,表示能缩最小的倍数
pagingEnabled
// 当值是 YES 会自动滚动到 subview 的边界。默认是NO
scrollEnabled
// 决定是否可以滚动
showsHorizontalScrollIndicator
// 滚动时是否显示水平滚动条
showsVerticalScrollIndicator
// 滚动时是否显示垂直滚动条
bounces
// 默认是 yes,就是滚动超过边界会反弹有反弹回来的效果。假如是 NO,那么滚动到达边
界会立刻停止。
bouncesZoom
// 和 bounces 类似,区别在于:这个效果反映在缩放上面,假如缩放超过最大缩放,那么会
反弹效果;假如是 NO,则到达最大或者最小的时候立即停止。
directionalLockEnabled
// 默认是 NO,可以在垂直和水平方向同时运动。当值是 YES 时,假如一开始是垂直或者是
水平运动,那么接下来会锁定另外一个方向的滚动。 假如一开始是对角方向滚动,则不会禁止
某个方向
indicatorStyle
// 滚动条的样式,基本只是设置颜色。总共3个颜色:默认、黑、白
scrollIndicatorInsets
// 设置滚动条的位置
2、常用代理方法
UIScrollView代理方法
// scrollView已经滑动
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
// 视图已经放大或缩小
- (void)scrollViewDidZoom:(UIScrollView *)scrollView;
// scrollView开始拖动
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
// scrollView结束拖动
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate;
// scrollView开始减速(以下两个方法注意与以上两个方法加以区别)
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;
// scrollview减速停止
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;
// 返回一个放大或者缩小的视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
// 开始放大或者缩小
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
// 缩放结束时
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale;
// 是否支持滑动至顶部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;
// 滑动到顶部时调用该方法
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;
3、使用捏合手势
UIScrollView的捏合手势
UIScrollView能很简单的使用捏手势来进行缩放,可以缩小或者放大,只需要实现一个委托方法就可以,简单的几个步骤就可以让滚动视图的子视图支持缩放功能。
scrollView.minimumZoomScale = 0.5;
// 缩放时,是否存在反弹效果
// scrollView.bouncesZoom = NO; //一般不设置用户体验不好
scrollView.maximumZoomScale = 2;
在加入协议方法
#pragma mark - UIScrollView Delegate
// 返回一个放大或者缩小的视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return _imageView;
}