contentSize、contentInset、contentOffset的区别

来源:互联网 发布:app开发制作软件 编辑:程序博客网 时间:2024/06/05 02:55


在项目中经常会使用到contentSize、contentInset、contentOffset 这三个属性,时间一长很容易被搞混,打算记一下。

我们首先了解下什么叫frame 与 bounds 、center 属性。

我们来先看一张图




frame 是 x、y、width、height 相当于 左边图:(40、40、240、380)

bounds 是 width、height  x与y 默认都是0  相当于 右边图 (0、0、240、380)

center 是一个View的中心,默认是这个view对应的superview 坐标的中间值 

相当于 左边图:(160、230)




说完了上面的 该说正题了。


contentSize:

contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。


contentInset:

contentInset的单位是UIEdgeInsets,默认值为UIEdgeInsetsZero,也就是没有扩展的边。
UIEdgeInsets 设置包围tableView的坐标,typedef struct UIEdgeInsets {
CGFloat top, left, bottom, right;  // specify amount to inset (positive) for each of the edges. values can be negative to 'outset'
} UIEdgeInsets;
代表 上、 左、 下、 右 四个方向扩展出去的值。


contentOffset:
contentOffset是UIScrollView当前显示区域的顶点相对于frame顶点的偏移量,例如上面的例子如果拉到最下面,则contentOffset就是(0, 480),也就是y偏移了480.





0 0
原创粉丝点击