美文网首页
View生命

View生命

作者: 不掉头发的程序猿 | 来源:发表于2018-10-18 14:08 被阅读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)

    相关文章

      网友评论

          本文标题:View生命

          本文链接:https://www.haomeiwen.com/subject/bzdbaftx.html