• UIScrollView控件及其三个常用属性:contentSize、contentInset和contentOffset


    如果您对UIScrollView控件感到难以理解,下面是本人自己对UIScrollView控件的理解方式,按照我的思路,理解UIScrollView控件非常容易!

    我对UIScrollView的构成理解:

      UIScollView由上下两个层构成:UIScrollView控件 = 上层(空心四边形线框) + 下层(实心内容视图),且上、下两层紧紧靠在一起,构成一个完整的UIScrollView控件

     上层是该UIScrollView的四边形线框,空心,UIScrollView的frame指的就是这个空心四边形线框的frame;

     下层才是该UIScrollView的真正的内容视图,实心,UIScrollView使用该内容视图来对外展示内容,即这个内容视图即常说的UIScrollView的contentView;

     UIScrollView的contentSize属性就决定着这个内容视图的大小.

    我对UIScrollView的滑动行为的理解:

     当我们的手指在UIScrollView控件中上、下、左、右方向滑动时,以查看该UIScrollView控件对外展示的上、下、左、右四个部分的内容时,

     记住:这时,其实,我们的手指真正滑动的是该UIScrollView的下层(内容视图),而上层始终固定不动,因为我们上面说了,上层的frame始终是UIScrollView的frame

     这是因为当我们的手指在UIScrollView控件中滑动时,由于其上层是空心四边形线框,而其下层却是实心内容视图,

     所以,其实,我们的手指穿过了上层(空心四边形线框),抵达到(即触摸到)下层(实心内容视图),进而,这时,我们的手指进行滑动,就滑动了这个下层(内容视图),

     所以,其实,我们的手指真正滑动的是该UIScrollView控件的下层(内容视图),而上层始终是固定不动的.

    我对UIScrollView控件的三个常用属性的理解:UIScrollView控件的这三个常用属性,初学者通常都觉得较难理解 

     UIScrollView三个基本的属性:contentSize、contentInset和contentOffset

     contentSize: The size of the content view. Default value CGPointZero

                  该属性决定着UIScrollView的内容视图的大小,即UIScrollView的可滑动区域的大小,

                  UIScrollView的内容视图指的就是该UIScrollView的可滑动区域

                  比如UIScrollView控件的frame = (0 ,0 ,320 ,480),该控件的 contentSize = (320 ,960),代表你的UIScrollview仅能上下滑动,不可左右滑动,

                  且其滑动区域的高度(上下范围)为该控件的frame的高度的两倍,而宽度(左右范围)等于frame的宽度。

                  使用UIScrollView时必须明确赋值该属性,否则,由于该属性的默认值就是CGSizeZero,

                  所以,未被赋值该属性的UIScrollView控件不可被滑动,即其既不能被上下滑动,也不能被左右滑动

     contentOffset:The point at which the origin of the content view is offset from the origin of the scroll view.Default value CGSizeZero

                   该属性决定着UIScrollview的下层(内容视图)的bounds点当前距上层bounds顶点的距离大小,

                   即这个距离就是我们常说的UIScrollView的内容视图的bounds点偏移UIScrollView的bounds点的偏移量,

                   比如上面那个例子,你的手指持续向上滑动屏幕,直至手机屏幕完全展示出该UIScrollView的内容视图的下半部分,

                   这时,contentOffset就是(0 ,480),

                   也就是说,在y方向上,内容视图的bounds点距离上层的bounds点为480点,即内容视图在y方向上的偏移量为480点,即contentOffset.y的值为480

                   而在x方向上,内容视图的bounds点距离上层的bounds点为0,即内容视图在x方向上的偏移量为0,即contentOffset.x的值为0

     contentInset:The distance that the content view is inset from the enclosing scroll view.

                        Default value UIEdgeInsetsZero.

                        can be used to add additional scroll area around content

                  该属性决定着当内容视图的滑动行为停止后,该内容视图的各边距上层对应各边(逆时针:上距上、左距左、下距下、右距右)的距离大小

                  所以,这个属性能够用于在下层四周增加额外的滑动区域,而上层始终固定不变

  • 相关阅读:
    CLR Via CSharp读书笔记(26)
    RH253读书笔记(10)-Appendix A Installing Software
    RH253读书笔记(9)-Lab 9 Account Management Methods
    一位程序员工作10年总结的13个忠告
    不跟你谈“五险一金”的老板,都是在耍流氓
    RH253读书笔记(8)-Lab 8 Securing Data
    RH253读书笔记(7)-Lab 7 Electronic Mail
    RH253读书笔记(6)-Lab 6 Implementing Web(HTTP) Services
    robotium测试创建java文件和junit文件区别
    LigerUi中为Grid表加上序号,并调整适当宽度!(实例)
  • 原文地址:https://www.cnblogs.com/hello-Huashan/p/4684238.html
Copyright © 2020-2023  润新知