UIScrollView
使用场景:当内容数据一多,在可视的View中就展示不完,这时候就需要用到UIScrollView控件
contentSize设置内容尺寸:UIScrollView会隐藏超出内容的部分,相当于scrollView默认设置了clipToBounds为YES
UIScrollView无法滚动的原因:
- 没有设置contentSize,或者设置的contenSize小于等于scrollView的尺寸
- scrollEnable = NO;
- userInteractionEnable = NO; // 是否允许与用户交互
UIScrollView的frame决定了可视范围,contentSize决定了内容滚动的范围
属性:
self.scrollViewbounces = NO;//去除弹簧效果
self.alwaysBounceVertical=YES;
self.alwaysBounceHorizontal=YES;//不管有没有contentSize,总是有弹簧效果;作用:用来做下拉刷新和上拉刷新的
self.indicatorStyle= //设置滚动条的颜色
self.scorllView.subViews //查看UIScrollView中有多少个子控件
contentOffSet:控制内容的滚动,也称为内容的偏移量
contentInset设置内边距(增加额外的滚动区域)
self.scrollView.pageEnable = YES;//分页的标准:以scrollView的尺寸为一页
self.scrollView.maximumZoomScale = 2.0;//设置缩放比例
self.scrollView.minimumZoomScale = 0.2;
代理:
监听器的作用,可以监听UIScrollView的各种事件(只要成为UIScrollView的代理,就能监听UIScrollView的行为)
当UIScrollView发生一系列行为时,就会告诉代理(滚动了、点击了、拖拽了)
代理id类型,且必须是弱指针
步骤:
- 设置scrollView的delegate(代理)代理对象一般是(控制器对象)
- 控制器要遵守协议UIScrollViewDelegate协议
- 控制器要实现UIScrollViewDelegate协议里面的方法
常用代理方法:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView; -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView; -(void)scrollViewWillEndDragging.. -(void)scrollViewDidEndDragging... -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView