iOS-UIViewController生命周期
UIViewController的生命周期作为一个基本知识点,大家都了解的清楚嘛,咱们先说一下顺序,然后再具体解释
需要注意的点
1、按道理来讲通过xib创建的控制器加载的时候需要调用方法awakeFromNib,但是事实是没有调用,只有通过xib创建的UIView或者其子类才会调用此方法
2、+load是类加载的时候调用,+initialize类创建的时候调用,+load还是尽量少用,可以加快启动速度
3、loadView的作用是加载控制器管理的view,如果控制器有关联的nib文件,该方法会自动做关联并加载view,如果没有关联的nib文件,则创建空白的view对象
4、你可以在loadView方法中创建self.view,一般不用实现此方法,如果实现了此方法那么在这个方法里边必须调用[super loadView]或者手动把创建self.view,原因见第5条
5、viewDidLoad方法的前提是self.view已经创建完成,如果执行到此方法的时候,还没有创建self.view对象,那么系统就会去调用loadView方法去创建view,这时候如果loadView方法中不能创建view,这时候系统就会造成死循环,猜测系统内部代码如下:
- (void)loadView{
[self viewDidLoad];
}
- (void)viewDidLoad {
[super viewDidLoad];
if(self.view == nil){
[self loadView];
}
}
6、viewWillLayoutSubviews方法在布局view的子控件的时候调用
说一下UIView的刷新布局操作
//等待下一个更新周期刷新页面布局,一定会调用layoutSubviews方法
[self.view setNeedsLayout];
//强制立即布局并显示更新,如果没有需要刷新的约束,那么就不会调用layoutSubviews方法
[self.view layoutIfNeeded];
//调用它将不做任何操作,通过上边两个方法来刷新布局,uiview可以重写这个方法来做一些操作
[self.view layoutSubviews];
转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1226169349@qq.com
文章标题:iOS-UIViewController生命周期
文章字数:480
本文作者:王立志
发布时间:2020-03-26, 10:52:18
最后更新:2020-03-26, 17:46:29
原始链接:http://yoursite.com/2020/03/26/iOS-UIViewController生命周期/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。