iOS界面开发中提供了一个非常重要的类UIScrollView,它能显示比屏幕更大的应用窗口的内容,从而不必担心受屏幕大小限制,翻到下一页浏览信息,能大大提升用户体验。下面笔者总结了UIScrollView的常见属性、手势缩放和分页效果:
一、 基本使用
1.1作用
UIScrollView可以用于显示多于一个屏幕的内容,超出屏幕范围的内容可以通过滑动进行查看
1.2常见属性
- CGSize contentSize :设置UIScrollView的滚动范围
- CGPoint contentOffset :UIScrollView当前滚动的位置
- UIEdgeInsets contentInset :这个属性可以在四周增加滚动范围
1.3其他属性
- BOOL bounces 是否有弹簧效果
- BOOL scrollEnabled 是否能滚动
- BOOL showsHorizontalScrollIndicator 是否显示水平方向的滚动条
- BOOL showsVerticalScrollIndicator 是否显示垂直方向的滚动条
- UIScrollViewIndicatorStyle indicatorStyle 设定滚动条的样式
- BOOL dragging 是否正在被拖拽
- BOOL tracking 当touch后还没有拖动的时候值是YES,否则NO
- BOOL decelerating 是否正在减速
- BOOL zooming 是否正在缩放
二、 手势缩放
- 设置UIScrollView的id 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
{
}