View生命

 1. View的生命周期:

当第一次加载到内存:

加载view(loadView)-->view加载完毕(viewDidLoad)

当加载完成后开始展示布局:

控制器View将要显示(viewWillAppear)-->控制器View将要布局控件(viewWillLayoutSubViews)-->控制器view完成布局控件(viewDidLayoutSubviews)-->view已经显示(viewDidAppear)-->view即将消失(viewWillDisappear)-->view完全消失(viewDidDisappear)

2.View的加载:

View属性被访问时,

如果存在-------->

返回View

如果不存在-------->

loadView----->有自定义方法生成view,生成view

                 ----->没有自定义生成的view,通过xib和Story创建,得到View

                  ----->如果都没,返回empty View

3.view的布局,UIView通过layoutSubViews方法进行处理的

需要注意的时layoutSubViews方法由系统来调用,不能程序员来调用。可以调用setNeedsLayout方法进行标记,以保证在UI下个刷屏系统中会调用layoutSubviews。或者layoutIfNedded直接请求系统调用layoutIfNeeded直接请求系统调用layoutSubviews。

layoutSubViews的被调用时机:

1.addSubView会触发layoutSubviews,比如ivewA add ViewB,第一次添加A和B的layoutSubviews都会被调用,而第二次( viewA 已经有了viewB)只调用viewB的。

2.view的frame改变会触发layoutSubViews。

3.滚动一个UIScrollView会触发layoutSubviews。

4.旋转Screen会触发UIView的layoutSubviews。

5.改变transform属性时,当然frame也会变。

6.处于key window的UIView才会被调用( 程序同一时间只有一个window为keyWindow,可以简单理解为显示在最前面的window的keywindow)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容