Auto Layout = ViewWillAppear 的视图宽度错误
Auto Layout = ViewWillAppear has the wrong width of the view
我 UI 的部分内容正在使用自动版式。当我在 viewWillAppear 中检查视图的宽度时,宽度尚未更新。它在第二次回调到 - (void)updateViewConstraints 后得到更新。问题是我根据 viewWillAppear 中的宽度设置了我的 UI 部分(出于遗留原因使用 spring 和 struts)。什么时候是设置这个接受宽度参数的遗留 UI 的好时机?
谢谢
布局发生在 viewWillAppear
returns 之后。在 viewDidLayoutSubviews
(在您的视图控制器中)或在 layoutSubviews
(在您的自定义视图子类中)中执行。无论哪种方式,请务必先调用 super
。
另一种方法是通过发送[view layoutIfNeeded]
强制布局。然后你可以添加子视图并设置它们的弹簧和struts。因为你添加了子视图,系统将再次执行布局(在正常时间)。
我 UI 的部分内容正在使用自动版式。当我在 viewWillAppear 中检查视图的宽度时,宽度尚未更新。它在第二次回调到 - (void)updateViewConstraints 后得到更新。问题是我根据 viewWillAppear 中的宽度设置了我的 UI 部分(出于遗留原因使用 spring 和 struts)。什么时候是设置这个接受宽度参数的遗留 UI 的好时机?
谢谢
布局发生在 viewWillAppear
returns 之后。在 viewDidLayoutSubviews
(在您的视图控制器中)或在 layoutSubviews
(在您的自定义视图子类中)中执行。无论哪种方式,请务必先调用 super
。
另一种方法是通过发送[view layoutIfNeeded]
强制布局。然后你可以添加子视图并设置它们的弹簧和struts。因为你添加了子视图,系统将再次执行布局(在正常时间)。