我在strong
文件中为UILabel
创建了.xib
约束,并为其指定了出口。
在我的代码中,我设置了self.constraint.active = NO
,但是在应用程序加载之后,当我打开Debug View Hierarchy
时,相同的约束处于 Activity 状态。
我尝试将其设置为viewDidLoad
,updateViewConstraints
和viewDidLayoutSubviews
无济于事。
我还创建了一个NSLayoutConstraint
子类,改写了setActive:
方法并在其中添加了一个断点,但是只有我的代码触发了它。
最佳答案
当遇到限制时,我建议您尽可能晚些做。根据您的情况,可能早于viewDidLoad
。
无论您最终做什么,都可以通过layoutIfNeeded
调用来强制刷新。
如果我没记错的话,可以禁用约束,然后强制更新约束/布局(updateConstraints
setNeedsLayout
),然后调用layoutIfNeeded
。但是我认为您只需要修改约束,这样做将自动将视图设置为在有时间或调用layoutIfNeeded
时重新布局自身。
无论哪种方式,请仅尝试这两行,否则,将我放在括号之间的行添加。
我不会撒谎,有时候约束是iOS,技能和黑魔法的一部分。