UIView的框架起源与其中心之间有什么关系?

时间:2015-03-31 06:08:22

标签: ios objective-c cocoa-touch uiview cgrect

假设我正在创建一个动画,我想将UIView的中心移动到我所拥有的某个CGPoint。我知道我想要的中心是什么,只是前面提到的CGPoint,我知道我想要的宽度和高度,但是当我为UIView创建框架时,我不知道是什么为x设置yorigin

我应该设置0, 0还是真的?这有关系吗?

我是否应该考虑将center设置为设置原点的不同方法?让我希望CGRect有一个center作为选项的实例化器。

之前有一个问题涉及一个类似的问题,但它将它们视为三个独立的实体,而不是在创建视图时如何处理中心。

1 个答案:

答案 0 :(得分:4)

是的,继续并将初始帧的原点设置为任何内容,因为随后设置中心将有效地移动此原点。在以后完全配置时,使用CGRectZero框架初始化视图并不罕见。

frame实际上只是基于视图centerbounds的计算属性,因此在视图布局方面,这三者都是内在联系的。 UIView Class Reference可以这样说:

  

视图的几何图形由其frameboundscenter定义   属性。 frame定义了视图的来源和尺寸   其超视图的坐标系统,常用于   布局以调整视图的大小或位置。 center属性   可以用来调整视图的位置而不改变它   尺寸。边界定义视图的内部尺寸   看到它们,几乎只用于自定义绘图代码。该   frame的大小部分和边界矩形耦合在一起   因此,更改任一矩形的大小会更新大小   两者。