美文网首页
UIKit中的常用控件(二):UIScrollView

UIKit中的常用控件(二):UIScrollView

作者: Coulson_Wang | 来源:发表于2017-06-05 23:12 被阅读0次

    本篇博客主要介绍UIScrollView这个在iOS界面开发中非常常用的控件


    主要属性

    1. contentSize(滚动范围)
      需要设置UIScrollView的contentSize属性才能进行滚动

    2. scrollEnabled(是否可以滚动)
      默认为YES,决定UIScrollView是否可滚动

    3. bounces(弹簧效果)
      默认为YES,决定滚动到边缘位置时是否有弹簧效果

    4. alwaysBounceHorizontal/alwaysBounceVertical(始终具有弹簧效果)
      默认为NO。如果置为YES,即使没有设置contentSize,也能在边缘位置时滚动

    5. showsHorizontalScrollIndicator/showsVerticalScrollIndicator(是否显示滚动条)
      默认为YES

    6. subviews
      取得的子控件数组中除了包含添加进去的控件,还会包含2个自动生成的滚动条的imageView。而且数组中的子控件排列顺序不固定。因此不要通过索引的方式去访问UIScrollView的子控件

    7. contentOffset(内容偏移量)
      一个CGPoint类型的属性,表示scrollView的原点与contentSize的原点间的差值。用来控制或获取内容的滚动位置

    8. contentInset(内边距)
      决定无法显示内容的内边距的量。增加额外的滚动范围,但不会改变contentSize的大小

    </br>

    UIScrollView的代理机制

    实现UIScrollView的代理步骤:
    1. 设置代理对象
      为scrollView的delegate属性设置一个代理对象。(任意对象都可以作为代理对象,但通常将scrollView所在的控制器作为代理对象)
    2. 遵守协议
      代理对象必须遵守了scrollViewDelegate协议
    3. 实现方法
      使用 scrollViewDidscroll:方法来监听scrollView的滚动
    4. 其他方法
    • scorllViewWillBeginDragging:即将开始拖拽时调用
    • scrollVIewWillEndDragging:withVelocity:targetContentOffset:即将停止拖拽时调用
    • scorllViewDidEndDragging:willDecelerate:已经停止拖拽时调用(可以通过decelerate参数来判断scrollView是否还在滚动)
    • scrollViewDidEndDelerating:已经减速完毕时调用

    </br>

    UIScrollView中的内容缩放

    1. 实现代理
    2. 实现viewForZoomingInScrollView:方法,返回需要缩放的子控件
    3. 设置scrollView的最大和最小缩放比例

    </br>

    UIScrollView的分页功能

    1. 开启分页功能
      设置scrollView的pagingEnable属性为YES
    2. 显示分页页码
    • 增加一个UIPageControl控件
    • 设置控件的numberOfPages属性
    • 实现得scrollView的delegate中的方法来改变currentPage属性实现显示翻页

    </br>

    Tips

    1. UIScrollView的clipsToBounds属性默认为YES,既超出边框的部分会被裁剪掉
    2. 如果通过代码创建的scrollView,一开始subviews这个数组为nil。通过storyboard创建的则不为空。
    3. UIScrollView分页的标准为:以scrollView的尺寸为一页。

    相关文章

      网友评论

          本文标题:UIKit中的常用控件(二):UIScrollView

          本文链接:https://www.haomeiwen.com/subject/aolbfxtx.html