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

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

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

上一篇:怎样在winform中上传图片


下一篇:Hibernate通过SQL查询常量时只能返回第一个字符的解决方法