假设我正在创建一个动画,我想将UIView的中心移动到我所拥有的某个CGPoint
。我知道我想要的中心是什么,只是前面提到的CGPoint
,我知道我想要的宽度和高度,但是当我为UIView
创建框架时,我不知道是什么为x
设置y
和origin
。
我应该设置0, 0
还是真的?这有关系吗?
我是否应该考虑将center
设置为设置原点的不同方法?让我希望CGRect有一个center
作为选项的实例化器。
之前有一个问题涉及一个类似的问题,但它将它们视为三个独立的实体,而不是在创建视图时如何处理中心。
答案 0 :(得分:4)
是的,继续并将初始帧的原点设置为任何内容,因为随后设置中心将有效地移动此原点。在以后完全配置时,使用CGRectZero
框架初始化视图并不罕见。
frame
实际上只是基于视图center
和bounds
的计算属性,因此在视图布局方面,这三者都是内在联系的。 UIView Class Reference可以这样说:
视图的几何图形由其
frame
,bounds
和center
定义 属性。frame
定义了视图的来源和尺寸 其超视图的坐标系统,常用于 布局以调整视图的大小或位置。center
属性 可以用来调整视图的位置而不改变它 尺寸。边界定义视图的内部尺寸 看到它们,几乎只用于自定义绘图代码。该frame
的大小部分和边界矩形耦合在一起 因此,更改任一矩形的大小会更新大小 两者。