Skip to content

说下什么情况下会触发约束的自动更新,怎么手动更新约束 #130

@tbfungeek

Description

@tbfungeek

触发约束更新会调用:

- (void)updateConstraintsIfNeeded;

方法,我们可以在这里更改我们的约束。

触发约束更新可以分成两类,

  • 一类是自动更新,在激活或失效约束、修改优先级、修改常量值,添加,删除视图等操作,都可以导致约束发生变化。这种情况都会自动触发约束更新。

  • 另一种是手动更新,在某些业务场景我们需要手动更新,这时候我们可以手动调用

    - (void)setNeedsUpdateConstraints

    这时候将会设置一个内部的标记 “update constarints”,这个标记会在下一个更新周期中触发调用 updateConstrains。如果需要让当前的约束更改立即生效可以调用:

    - (void)updateConstraintsIfNeeded;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions