awakeFromNib
当 view 被从 Storyboard 或者 Nib 文件中加载出来时会调用这个方法,只会在所有对象被创建后调用。
这个方法在执行loadNibNamed:owner:,storyboardWithName:bundle:这一类方法时会调用。
此方法覆盖时需要调用 super 方法。默认的 super 方法里没有实现。
loadView()
View Controller 创建后需要加载 self.view 时会调用这个方法。此方法不应该被直接调用。
如果我们的界面是在 Storyboard 中创建的,那我们也不应该覆盖这个方法。
此方法覆盖时不该调用 super 方法。
viewDidLoad()
当 View Controller 的 View 被加载入后会调用这个方法,因此正常情况下只会调用一次。
此方法覆盖时需要调用 super 方法。
viewWillAppear
当 View 将要被添加到 View Hierarchy 中时会调用这个方法,每一次 View 将要显示时都会调用。在这个方法被调用时,也是在显示 View 所需要的动画被配置前。
这个时候在做一些和 frame 相关的操作时仍会出错,在这里 View 将要被加入 View Hierarchy,但是仍旧没有被添加进去。
此方法覆盖时需要调用 super 方法。
viewWillLayoutSubviews
在 ViewController.view 将要布局 Subviews 时调用。
在这之后 AutoLayout 会改变布局。
viewDidLayoutSubviews
已经布局完成,也可以做一些操作。
已通过 AutoLayout 布局。
viewDidAppear
此时界面已经被显示出来了,做一些操作时可能会让界面变化可见。
viewWillDisappear
在界面将要消失时调用
viewDidDisappear
界面消失后调用。
因为此时界面的布局相当于发生了变化,viewWillLayoutSubviews和viewDidLayoutSubviews也将在他们之间调用。
网友评论