【问题标题】:When does UIKit remove constraints automaticallyUIKit 什么时候自动移除约束
【发布时间】:2019-02-18 06:11:18
【问题描述】:

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

我发现这可以正常工作,但我担心我只是重新添加相同类型的约束。

UIKit 什么时候会自动移除约束?

【问题讨论】:

    标签: ios uikit nslayoutconstraint


    【解决方案1】:

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

    以下几种情况会自动删除约束或约束求解器不满足约束:

    • 当所有附加约束的视图都被移除时
    • 如果有冲突的约束,但是你会看到这样的错误

      无法同时满足约束,将尝试通过打破约束来恢复

    我一般是在视图初始化的时候加上约束,比如:

    • viewDidLoadUIViewController
    • init of UIView 这是子类,没有情节提要 xib
    • awakeFromNib of UIView 那是子类并且确实有故事板

    【讨论】:

    • 不会删除冲突的约束。它只是被约束求解器不满足。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 2015-04-24
      相关资源
      最近更新 更多