UIViewController
Table of Contents

UIViewController 布局

viewWillLayoutSubviews
updateViewConstraints
viewDidLayoutSubviews

由于现在 iOS 硬件也有多种屏幕尺寸了,不免要在代码里做些布局相关的事。这时往往要在 UIViewController 的 view 已是合适大小之后,这时上面几个方法就有用了。

而且要注意到很重要的一点:在 viewDidLoad 时 UIViewController 的 view 并没有 resize 过,特别是来自 xib 时,此时的尺寸还是 xib 里的尺寸。

对于VC来说设置布局的最合理时机应该是 viewWillLayoutSubviews 或者viewDidLayoutSubviews (推荐后者),对于 UIView 来说设置布局的最合理时机是为 layoutSubviews

如果选择 viewWillAppear 作为布局时机,很有可能触发一些不必要的布局 (比如 modal VC 被 dismiss 后导致当前的 topViewController 调用到 viewWillAppear 这种)