NSLayoutConstraint 自己重新激活

NSLayoutConstraint re-activates by itself

我在 .xib 文件中为 UILabel 创建了一个 strong 约束,并为其创建了一个出口。

在我的代码中,我设置了 self.constraint.active = NO,但在应用程序加载后,当我打开 Debug View Hierarchy 时,相同的约束处于活动状态。

我尝试在viewDidLoadupdateViewConstraintsviewDidLayoutSubviews中设置它,但没有用。

我还创建了一个NSLayoutConstraint子类,重写了setActive:方法并在其中放置了一个断点,但只有我的代码触发了它。

在使用约束时,我建议尽可能晚地进行。根据您的情况,可能最早 viewDidLoad.

无论您最终做什么,都可以通过 layoutIfNeeded 调用强制刷新。

如果我没记错的话,您可以禁用约束,然后强制更新约束/布局 (updateConstraints setNeedsLayout),然后调用 layoutIfNeeded。但我认为你只需要修改你的约束,这样做会自动将你的视图设置为在有时间或你调用 layoutIfNeeded.

时重新布局。

无论哪种方式,只尝试这两行,否则,添加我放在括号中的那些。

我不想撒谎,有时限制是一部分 iOS,一部分是技能,一部分是黑魔法。