Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 何时以及为什么调用updateConstraints?_Ios_Autolayout_Uikit - Fatal编程技术网

Ios 何时以及为什么调用updateConstraints?

Ios 何时以及为什么调用updateConstraints?,ios,autolayout,uikit,Ios,Autolayout,Uikit,何时以及为什么调用updateConstraints?当覆盖时,覆盖中要做什么样的工作 我已经阅读和观看了很多关于自动布局工作原理的信息,但我似乎无法完全理解它 您是否更新保存引用的任何特殊兴趣约束的常数,或者进行自定义您是否从视图中删除所有约束并完全像WWDC视频中的一个人那样重新创建这些约束?有关此问题的一些想法可在此处找到: https://oleb.net/blog/2015/08/how-to-use-updateconstraints/ 当然,WWDC的视频中偶尔会有关于这个话题的

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

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


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

有关此问题的一些想法可在此处找到:

https://oleb.net/blog/2015/08/how-to-use-updateconstraints/
当然,WWDC的视频中偶尔会有关于这个话题的信息

但总的来说,答案可能是:不要覆盖
updateConstraints
。在正常情况下不经常调用它,因此,如果同时调用
setNeedsUpdateConstraints
,则只需重写它,结果可能是不必要的混乱和复杂的体系结构。通常不需要
updateConstraints
覆盖。WWDC 2018年关于自动布局的视频显示,此类覆盖通常写得不正确,只会导致一系列效率极低的布局“搅动”。如果需要更改约束,只需在需要更改的地方更改它们

正如现在的文件所说:

在发生影响的更改后,立即更新约束几乎总是更干净、更容易的。例如,如果要更改约束以响应按钮点击,请直接在按钮的操作方法中进行更改。 仅当在位更改约束太慢,或视图产生大量冗余更改时,才应替代此方法

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