美文网首页
AutoLayout原理

AutoLayout原理

作者: 楼上那只猫 | 来源:发表于2020-02-22 17:11 被阅读0次

    视图更新和渲染循环(render loop)有关,工作流程如下图:


    渲染循环.png

    主要分三步:

    1. 更新约束,从下往上,最终到达Window,
    2. 布局,从上往下
    3. 展示

    每一步都有对应的api


    对应api.png

    在iOS应用中,Window一般为顶级视图,每个window中都有一个布局引擎(engine),当往视图添加约束的时候,实际上是在引擎中添加了一系列等式,引擎负责计算出这些等式中所有变量的值,最终得出视图的约束。


    engine.png engine1.png

    在engine对约束计算完毕后,就会告知该视图,该视图则会通知它的上级视图,我需要更新约束了,这个过程通常需要调用

    - (void)setNeedsLayout;
    

    在进入layout阶段后,会调用

    - (void)layoutSubviews;
    

    在engine中,多个不同块的布局互不干扰,复杂度呈线性增加。
    The engine is a layout cache and dependency tracker.

    相关文章

      网友评论

          本文标题:AutoLayout原理

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