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

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

我尝试将其设置为viewDidLoadupdateViewConstraintsviewDidLayoutSubviews无济于事。

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

最佳答案

当遇到限制时,我建议您尽可能晚些做。根据您的情况,可能早于viewDidLoad

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

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

无论哪种方式,请仅尝试这两行,否则,将我放在括号之间的行添加。

我不会撒谎,有时候约束是iOS,技能和黑魔法的一部分。

10-07 19:56