常见属性:
@property (nonatomic) CGPoint contentOffset;// 表示UIScrollView的滚动位置
@property (nonatomic) CGSize contentSize;// 表示UIScrollView内容的尺寸,即滚动范围
@property (nonatomic) UIEdgeInsets contentInset;// 能够在UIScrollView四周增加额外的边框
self.scrollView.contentOffset = CGPointMake(CGFloat x, CGFloat y);
self.scrollView.contentSize = CGSizeMake(CGFloat width, CGFloat height);
self.scrollView.contentInset = UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right);
其他属性:
@property (nonatomic) BOOL bounces;// 设置是否需要弹簧效果
@property (nonatomic, getter = isDcrollEnabled) BOOL scrollEnabled;// 设置是否能滚动
@property (nonatomic) BOOL showHorizontalScrollIndicator;// 是否显示水平滚动条
@property (nonatomic) BOOL showVerticalScrollIndicator;// 是否显示垂直滚动条
UIScrollView代理(delegate)
当用户开始拖拽,调用delegate的scrollViewWillBeginDragging:方法;
当用户正在滚动,调用delegate的scrollViewDidScroll:方法;
当用户停止拖拽,调用delegate的scrollViewDidEndDragging:willDecelerate:方法;
当用户使用捏合手势时调用delegate的viewForZoomingInScrollView:方法,其返回的控件就是将要缩放的控件;
当用户正在捏合,调用delegate的scrollViewDidZoom:方法。
成为UIScrollView的delegate条件:
UIScrollView将delegate需要实现的方法都定义在了UIScrollViewDelegate协议中,因此想要成为UIScrollView的delegate,必需遵守UIScrollViewDelegate协议。
实现代理的方法:
通过代码:self.scrollView.delegate = self;
通过storyboard右击scrollView,从delegate拖拽到ViewController
让控制器实现代理协议:@interface ViewController () <UIScrollViewDelegate>
实现协议中定义的方法。
UIScrollView的缩放
设置最大/最小缩放值:
self.scrollView.maximumZoomScale = 2.0; // 最大放大值
self.scrollView.minimumZoomScale = 0.5; // 最小缩小值
调用delegate的方法:
viewForZoomingInScrollView:
UIScrollView的分页
// 根据scrollView的宽度分页
self.scrollView.pagingEnabled = YES;
UIPageControl
self.pageControl.numberOfPages = ;// 设置pageControl总页数
self.pageControl.currentPage = ;// 设置当前页小圆点0,1,2,...
然后通过UIScrollView的代理方法监听滚动位置情况,利用scrollView.contentOffset.x
的值,从而改变pageControl.currentPage
的值来小圆点的显示。
注意:UIPageControl支持用户点击哪边向哪边切换