何时以及为何调用 updateConstraints?覆盖时,覆盖中要完成什么样的工作?

我已经阅读并观看了大量有关自动布局如何工作的信息,但我似乎无法完全理解它。

您是否更新您保存引用的任何特殊兴趣约束的常量,或者要进行自定义,您是否从 View 中删除所有约束并完全像一个人在 WWDC 视频中所做的那样重新创建它们?

最佳答案

关于这个问题的一些想法可以在这里找到:

https://oleb.net/blog/2015/08/how-to-use-updateconstraints/

当然,WWDC 视频中偶尔会提供有关此主题的信息。

但总的来说,答案可能是:不要覆盖 updateConstraints 。在正常情况下它不会经常被调用,所以如果你也调用 setNeedsUpdateConstraints ,你只需要覆盖它,结果可能是一个不必要的困惑和复杂的架构。通常不需要 updateConstraints 覆盖。 WWDC 2018 关于自动布局的视频显示,此类覆盖经常被错误地编写,只会导致一堆效率极低的布局“流失”。如果您需要更改约束,只需在需要更改的地方更改它们。

正如文档现在所说:



最后一句指的是一种非常罕见的情况,在任何情况下,您都不可能知道如何正确实现 updateConstraints 以提高效率。所以不要。

关于ios - 何时以及为何调用 updateConstraints?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38474108/

10-09 09:14