Ios 何时以及为什么调用updateConstraints?
何时以及为什么调用updateConstraints?当覆盖时,覆盖中要做什么样的工作 我已经阅读和观看了很多关于自动布局工作原理的信息,但我似乎无法完全理解它Ios 何时以及为什么调用updateConstraints?,ios,autolayout,uikit,Ios,Autolayout,Uikit,何时以及为什么调用updateConstraints?当覆盖时,覆盖中要做什么样的工作 我已经阅读和观看了很多关于自动布局工作原理的信息,但我似乎无法完全理解它 您是否更新保存引用的任何特殊兴趣约束的常数,或者进行自定义您是否从视图中删除所有约束并完全像WWDC视频中的一个人那样重新创建这些约束?有关此问题的一些想法可在此处找到: https://oleb.net/blog/2015/08/how-to-use-updateconstraints/ 当然,WWDC的视频中偶尔会有关于这个话题的
您是否更新保存引用的任何特殊兴趣约束的常数,或者进行自定义您是否从视图中删除所有约束并完全像WWDC视频中的一个人那样重新创建这些约束?有关此问题的一些想法可在此处找到:
https://oleb.net/blog/2015/08/how-to-use-updateconstraints/
当然,WWDC的视频中偶尔会有关于这个话题的信息
但总的来说,答案可能是:不要覆盖updateConstraints
。在正常情况下不经常调用它,因此,如果同时调用setNeedsUpdateConstraints
,则只需重写它,结果可能是不必要的混乱和复杂的体系结构。通常不需要updateConstraints
覆盖。WWDC 2018年关于自动布局的视频显示,此类覆盖通常写得不正确,只会导致一系列效率极低的布局“搅动”。如果需要更改约束,只需在需要更改的地方更改它们
正如现在的文件所说:
在发生影响的更改后,立即更新约束几乎总是更干净、更容易的。例如,如果要更改约束以响应按钮点击,请直接在按钮的操作方法中进行更改。
仅当在位更改约束太慢,或视图产生大量冗余更改时,才应替代此方法
最后一句话指的是一种非常罕见的情况,在任何情况下,您都不可能知道如何正确地实现updateConstraints
,以获得效率。所以不要