十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
UIScrollView滚动视图
从网站建设到定制行业解决方案,为提供网站设计、成都网站制作服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。成都创新互联将不断加快创新步伐,提供优质的建站服务。移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限
UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容
如:
手机的设置页面、照片浏览中放大缩小页面、app上的广告栏等
基本使用过程:
1)创建UIScrollView对象并设置其frame
2)将要展示的内容添加到UIScrollView中
3)设置UIScrollView的contentSize属性以确定可展示的视图范围
(能滚多远,滚到哪里是尽头)
无法滚动的解决办法:
没有设置contentSize
scrollEnabled = NO
没有接收到触摸事件:userInteractionEnabled = NO
没有取消autolayout功能(要想scrollView滚动,必须取消autolayout)
… …
UIScrollView的几个重要属性
frame:我们所看到的frame,以父视图左上定点作为坐标原点
contentSize:scrollView内部的可展示的范围,是一个CGSize类型
@property(nonatomic) CGSize contentSize - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
contentOffSet:当前的滚动位置,是一个CGPoint类型
@property(nonatomic) CGPoint contentOffset
contentInset:内边距
@property(nonatomic) UIEdgeInsets contentInset
其他属性:
@property(nonatomic, getter=isScrollEnabled) BOOL scrollEnabled //滚动功能使能 @property(nonatomic) BOOL scrollsToTop //点击状态栏回滚到顶部功能的使能 @property(nonatomic) BOOL bounces //弹簧功能使能 @property(nonatomic) BOOL showsHorizontalScrollIndicator //水平滚动条显示使能 @property(nonatomic) BOOL showsVerticalScrollIndicator //垂直滚动条显示使能
滚动视图的代理
UIScrollView对象有一个代理属性:
@property(nonatomic, assign) id< UIScrollViewDelegate > delegate
代理者需要遵循代理协议
检测滚动位置的代理方法:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
检测拖拽的代理方法:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
如何实现缩放?
由于scrollView中可以放置多个子视图
故当使用缩放手势时,scrollView通过代理方法询问代理者应当缩放哪个子视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
实现该方法,返回要缩放的子视图
检测缩放的代理方法:
- (void)scrollViewDidZoom:(UIScrollView *)scrollView - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView*)view - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView*)view atScale:(CGFloat)scale
滚动视图的分页功能
滚动视图支持分页效果的滚动功能
相关属性:
@property(nonatomic, getter=isPagingEnabled) BOOL pagingEnabled //分页效果使能
使用的一般步骤:
1)设置页数,contentSize的width为frame的width的页数倍
2)向scrollView中放置每一页应显示的内容
3)分页效果属性设置为YES
4)必要时隐藏滚动条
5)必要时使用UIPageControl来显示当前是第几页
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。