UIKit何时自动删除约束

时间:2019-02-18 06:11:18

标签: ios uikit nslayoutconstraint

在我的updateLayoutConstraints中,添加约束,然后调用super.updateLayoutConstraints()。根据Apple文档,这似乎还可以,但是UIKit是否会在调用此函数之前自动删除约束?

我发现这行得通,但是我担心我只是重新添加了相同类型的约束。

UIKit何时自动删除约束?不是吗?

2 个答案:

答案 0 :(得分:1)

约束是用于布局用户界面元素的,因此在正常情况下不会被删除。

以下是自动删除约束或约束求解器不满足的情况:

  • 当所有附加了约束的视图被删除
  • 如果约束冲突,但是您会看到这样的错误
      

    无法同时满足约束条件,将尝试通过打破约束条件进行恢复

我通常在初始化视图时添加约束,例如:

  • {{1}中的viewDidLoad
  • UIViewController中的
  • init是子类,没有情节提要xib
  • UIView中的
  • awakeFromNib是子类,并且确实有故事板

答案 1 :(得分:0)

updateConstraints不会删除您添加的任何约束。如果要避免添加重复的约束,则需要设置一个标志或保留对已经创建的约束的引用。