ios – 何时以及为什么要调用updateConstraints?

前端之家收集整理的这篇文章主要介绍了ios – 何时以及为什么要调用updateConstraints?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
何时以及为什么要调用updateConstraints?当覆盖时,在覆盖中要做什么样的工作呢?

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

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

解决方法

关于此事的一些想法可以在这里找到:

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

当然,WWDC视频中偶尔会有关于此主题的信息.

但总的来说答案可能是:不要覆盖updateConstraints.在正常情况下不经常调用它,所以如果你也调用setNeedsUpdateConstraints,你只需要覆盖它,结果可能是一个不必要的混乱和复杂的架构.通常不需要updateConstraints覆盖.关于自动布局的WWDC 2018视频显示,这种覆盖通常写得不正确,只会导致一堆效率极低的布局“流失”.如果您需要更改约束,只需在需要更改的位置更改约束.

正如文档现在所说:

It is almost always cleaner and easier to update a constraint immediately after the affecting change has occurred. For example,if you want to change a constraint in response to a button tap,make that change directly in the button’s action method.
You should only override this method when changing constraints in place is too slow,or when a view is producing a number of redundant changes.

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

猜你在找的iOS相关文章