【发布时间】:2015-03-30 07:48:31
【问题描述】:
我有一个与 Storyboard 中的自动布局相结合的应用,而一些旧的纯代码视图没有自动布局
在我的 MainViewController 中,我尝试在 viewDidLayoutSubviews 和 viewWillAppear 中初始化边界、约束等子视图。因为自动布局问题,我发现在 viewDidLayoutSubviews 中进行初始化是获得父视图边界正确边界的最佳位置。
但是,我注意到 viewDidLayoutSubviews 会在完全稳定下来之前被调用 2-3 次,所以我必须处理如果这是我第一次初始化我的子视图,或者如果在自动布局后某些约束发生变化或大小发生变化,则更新我的框架.
现在我想改进它,但我无法弄清楚是什么在调用 viewDidLayoutSubviews 好几次。
我想要的最好的事情是只调用一个 viewDidLayoutSubviews,然后我可以获得正确的大小来初始化我的子视图。
我试过搜索,但有人说 viewDidLayoutSubviews 是系统调用的,所以不能保证它会被调用多少次。如果是这种情况,使用自动布局子视图进行初始化的正确模式是什么?
【问题讨论】:
标签: ios