如果启用了autolayout,我们不需要自己设置视图帧。自动布局可以帮助我们计算视图的大小和原点。我们可以在控制器方法“viewDidAppear”中获取帧。但我想知道视图何时在其生命周期中获得其计算框架?
答案 0 :(得分:1)
视图在收到layoutSubviews
消息时根据自动布局设置子视图的框架。 From the documentation:
此方法的默认实现在iOS 5.1及更早版本中不执行任何操作。否则,默认实现使用您设置的任何约束来确定任何子视图的大小和位置。
这就是为什么在您自己的[super layoutSubviews]
子类中覆盖layoutSubviews
并使用自动布局时调用UIView
非常重要。
答案 1 :(得分:0)
在自动布局中,您无需设置框架。只需将对象初始化为[[object alloc] init]并通过自动布局约束控制其位置