UIKit框架(19)滚动视图UIScrollView-创新互联

  • 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中放置每一页应显示的内容

   UIKit框架(19)滚动视图UIScrollView

   3)分页效果属性设置为YES

   4)必要时隐藏滚动条

   5)必要时使用UIPageControl来显示当前是第几页

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页标题:UIKit框架(19)滚动视图UIScrollView-创新互联
网站网址:http://azwzsj.com/article/gchge.html