美文网首页
Auto Layout是怎么实现自动布局的?

Auto Layout是怎么实现自动布局的?

作者: 麦子_KB | 来源:发表于2020-03-03 12:38 被阅读0次

    1.Auto Layout是Apple提供的一个基于约束设置的布局,动态计算视图大小和位置的库

    2.在引入自动布局之前,iOS开发都采用手动布局方式。而手动布局的方式,原始落后、界面开发维护效率低。苹果从iOS 6开始引用Auto Layout布局,到iOS 12针对性能做大幅度提升优化。

    3.Auto Layout 使用布局算法Cassowary,能够有效解析线性等式系统线性不等式系统,用来表示用户界面中那些相等关系和不等关系。

    4.Auto Layout的布局引擎系统Layout Engine负责整个界面布局。生命周期如下:
    Auto Layout中的Layout Engine引擎负责页面布局。Run Loop会一直处于监听状态,当约束发生变化后会触发Deffered Layout Pass,在里面做容错处理,例如约束丢失等约束冲突等其他情况,并把view标识为待更新状态,当下一次刷新屏幕动作,比如调用layoutIfNeeded时,Layout Engine 会从上到下调用 layoutSubviews() ,通过 Cassowary算法计算各个子视图的位置,算出来后将子视图的frame从Layout Engine拷贝出来,接下来的过程就跟手写frame是一样的

    5.推荐WWDC Auto Layout视频

    相关文章

      网友评论

          本文标题:Auto Layout是怎么实现自动布局的?

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