自动布局= ViewWillAppear的视图宽度错误

时间:2015-02-17 02:21:20

标签: ios autolayout

我正在为我的部分UI使用autolayout。当我在viewWillAppear中检查视图的宽度时,宽度尚未更新。它在第二次回调到 - (void)updateViewConstraints后得到更新。问题是我在viewWillAppear中根据此宽度设置了我的UI部分(由于遗留原因使用spring和struts)。什么时候设置这个带有宽度参数的传统UI?

感谢

1 个答案:

答案 0 :(得分:14)

布局在viewWillAppear返回后发生。在viewDidLayoutSubviews(在视图控制器中)或layoutSubviews(在自定义视图子类中)中执行此操作。无论哪种方式,请务必先致电super

另一种方法是通过发送[view layoutIfNeeded]来强制布局。然后你可以添加子视图并设置它们的弹簧和支柱。系统将再次执行布局(在通常的时间),因为您添加了子视图。