---恢复内容开始---
一、 基本使用
1. 作用
UIScrollView可以用于显示多于一个屏幕的内容,超出屏幕范围的内容可以通过滑动进行查看 ,同时通过捏合手势缩放视图中的内容
2. 常见属性
- CGSize contentSize :设置UIScrollView的滚动范围
- CGPoint contentOffset :UIScrollView当前滚动的位置
- UIEdgeInsets contentInset :这个属性可以在四周增加滚动范围
3. 其他属性
BOOL bounces 是否有弹簧效果
BOOL scrollEnabled 是否能滚动
BOOL showsHorizontalScrollIndicator 是否显示水平方向的滚动条
BOOL showsVerticalScrollIndicator 是否显示垂直方向的滚动条
UIScrollViewIndicatorStyle indicatorStyle 设定滚动条的样式
BOOL dragging 是否正在被拖拽
BOOL tracking 当touch后还没有拖动的时候值是YES,否则NO
BOOL decelerating 是否正在减速
BOOL zooming 是否正在缩放
二、 手势缩放
- 设置UIScrollView的id<UISCrollViewDelegate> delegate代理对象
- 设置minimumZoomScale :缩小的最小比例
- 设置maximumZoomScale :放大的最大比例
- 让代理对象实现下面的方法,返回需要缩放的视图控件
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
跟缩放相关的常用方法还有
- 正在缩放的时候调用
-(void)scrollViewDidZoom:(UIScrollView *)scrollView
- 缩放完毕的时候调用
-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
三、 分页效果
- 设置pagingEnabled=YES即可,UIScrollView会被分割成多个独立页面,用户的滚动体验则变成了页面翻转
- 一般会配合UIPageControl增强分页效果,UIPageControl常用属性:
NSInteger numberOfPages : 总页数
NSInteger currentPage : 当前的页码
BOOL hidesForSinglePage : 当只有一页的时候,是否要隐藏视图
- 监听UIPageControl的页面改变:
// 添加监听器 [pageControl addTarget:self action:@selector(pageChange:) forControlEvents:UIControlEventValueChanged]; // 监听方法 - (void)pageChange:(UIPageControl *)pageControl { }
四、 图片全屏浏览例子
实现如下所示 通过触摸界面左右滑动显示对应的ImageView
实现代码如下:
#import "UIImage+WHBLAP.h" @implementation UIImage (WHBLAP) + (UIImage *)fullScreenImage:(NSString *)imgName { if (isIPhone5) { // 1.获取图片的扩展名 NSString *ext = [imgName pathExtension]; // 2.除去图片的扩展名 imgName = [imgName stringByDeletingPathExtension]; // 3.拼接iPhone5图片表示 imgName = [imgName stringByAppendingString:@"-568h@2x"]; // 4.拼接原有图片的扩展名 imgName = [imgName stringByAppendingString:ext]; } return [self imageNamed:imgName]; } @end