View生命

2018-10-18  本文已影响0人  不掉头发的程序猿

 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)

上一篇下一篇

猜你喜欢

热点阅读