设置:我设计的UIButton
底部为constraint
X,优先级为999.除此constraint
之外,UIButton
还有另一个constraint
Y,优先级1000,但这一个标记为installed = false
。
Y与@IBOutlet
UIViewController
中的viewDidLoad()
相关联,并附有强大的参考资料。
在constraint
上:如果某个条件恰好为真,我会Y.isActive = true
激活view.layoutIfNeeded()
Y,然后updateConstraints()
,最终调用constraint
} 如果需要的话。如果条件是假的,我什么都不做。
我的期望:当条件为真时,我希望视图将Y UIButton
应用于按钮并删除X.当条件为假时,我希望constraint
只有{ {1}} X。
结果:即使符合条件,似乎constraint
Y根本没有被应用。
我很感激对此的任何想法,这对我来说似乎应该有用。
感谢。
P.S。我使用swift,但我不介意提供的答案是否在Obj-C中。
答案 0 :(得分:-1)
使用IB时似乎存在一个错误,其中将约束的属性设置为已卸载并不会始终正常工作,因为它处于非活动状态'但是,它会在激活/停用给定约束时产生问题。
作为一种变通方法,始终将约束标记为已安装,但对于那些需要在加载时处于非活动状态的约束,请转到身份检查器/用户定义的运行时属性并添加“活动”#39;作为布尔值设置为false(未选中)