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

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

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

 

转载于:https://www.cnblogs.com/hello-Huashan/p/4684238.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值