Pär*_*erk 6 uikit ios autolayout
何时以及为何调用 updateConstraints?当覆盖时,需要在覆盖中完成哪些工作?
我已经阅读并观看了很多有关自动布局如何工作的信息,但我似乎无法完全理解它。
您是否会更新保存引用的任何特殊兴趣约束的常量,或者进行自定义,是否从视图中删除所有约束并完全重新创建它们,就像 WWDC 视频中的一个人所做的那样?
关于这个问题的一些想法可以在这里找到:
\n\nhttps://oleb.net/blog/2015/08/how-to-use-updateconstraints/\nRun Code Online (Sandbox Code Playgroud)\n\n当然,WWDC 视频中偶尔也会有关于此主题的信息。
\n\n但总的来说,答案可能是:不要覆盖updateConstraints。在正常情况下,它不会经常被调用,因此,如果您也调用了它setNeedsUpdateConstraints,则只需覆盖它,结果可能是一个不必要的混乱和复杂的体系结构。一般情况下不需要覆盖updateConstraints。WWDC 2018 关于自动布局的视频显示,此类覆盖经常被错误地编写,只会导致一堆效率极低的布局“混乱”。如果您需要更改约束,只需在需要更改时更改它们即可。
正如文档现在所说:
\n\n\n\n\n在发生影响的更改后立即更新约束几乎总是更干净、更容易。例如,如果您想要更改约束以响应按钮点击,请直接在 button\xe2\x80\x99s 操作方法中进行更改。\n 仅当更改就地约束太慢时才应重写此方法,或者当视图产生大量冗余更改时。
\n
最后一句话指的是一种极其罕见的情况,在任何情况下你都不可能知道如何正确实施updateConstraints以提高效率。所以不要。
| 归档时间: |
|
| 查看次数: |
2357 次 |
| 最近记录: |