我正在为我的部分UI使用autolayout。当我在viewWillAppear中检查视图的宽度时,宽度尚未更新。它在第二次回调到 - (void)updateViewConstraints后得到更新。问题是我在viewWillAppear中根据此宽度设置了我的UI部分(由于遗留原因使用spring和struts)。什么时候设置这个带有宽度参数的传统UI?
感谢
答案 0 :(得分:14)
布局在viewWillAppear
返回后发生。在viewDidLayoutSubviews
(在视图控制器中)或layoutSubviews
(在自定义视图子类中)中执行此操作。无论哪种方式,请务必先致电super
。
另一种方法是通过发送[view layoutIfNeeded]
来强制布局。然后你可以添加子视图并设置它们的弹簧和支柱。系统将再次执行布局(在通常的时间),因为您添加了子视图。