UIView生命周期
UIViewController生命周期

image.png
這里有一個討論,我們在autolayout場景下,添加布局的代碼應該放在那里。
- 在viewcontroller中
布局代碼應該放在viewDidLoad中,當然可以refactor成一個方法。在safeareaDidChange中更新布局。 - 在UIView中
布局代碼應該放在init中。
原因是:比如你再updateConstraint中或者didlayoutsubviews方法中按照官方的定義添加了布局約束,但是在其他響應位置對約束進行了調整,在viewWillUpdateConstrait中會對約束進行重新布局,可以看到布局被更新回去的尷尬場景。`