frame, bounds, center
看一下源码就知道frame和bounds的区别了
1 | -(CGRect)frame{ |
frame
: 该view在父view坐标系统中的位置和大小。(参照点是:父亲的坐标系统
)bounds
:该view在本地坐标系统中的位置和大小。(参照点是:本地坐标系统,就相当于View自己的坐标系统
,以0,0点为起点)center
:该view的中心点在父view坐标系统中的位置和大小。(参照点是:父亲的坐标系统
)
origin
是frame
或bounds
的左上角坐标
contentInset和contentOffset
contentSize
是contentView的大小
contentInset
就相当于html中的padding,是view相对于子view的距离有四个属性
例如UIEdgeInsets(top: 10.0, left: 20.0, bottom: 30.0, right: 40.0)
contentOffset
是scrollview当前显示区域顶点相对于frame顶点的偏移量
假如有一个ScrollView(scrollViewA
),设置scrollViewA的contentInset
为UIEdgeInsets(top: 10.0, left: 20.0, bottom: 30.0, right: 40.0)
,
那么scrollViewA
的bounds
为(-20,-10)
scrollViewA
的contentOffset
为(-20,-10)
在scrollViewA
的内容滚动时contentSize
是不变的contentInset
也是不变的
变得只是contentOffset
和bounds
并且contentOffset
和bounds
的值是一样的
上拉y
变大,下拉y
变小
左拉x
变大,右拉x
变小
可以这样想以scrollViewA
的左上角
为坐标系原点y轴向上为正
,x轴向左为正
,那么contentOffset
和bounds
就是contentView
的左上角
在该坐标系的坐标