删除以编程方式添加的约束
问题描述:
我读了很多关于如何删除通过故事板添加的约束,拖动插座,然后删除等,但我如何删除以编程方式添加的约束?例如删除以编程方式添加的约束
firstView.topAnchor.constraints(equalTo: secondView.bottomAnchor, constant: 15).isActive = true
如何禁用它,然后在需要时再次启用它。也许它应该是类似的东西?
firstView.removeConstraint(firstView.topAnchor.constraints(equalTo: secondView.bottomAnchor))
答
您应该将您的约束分配给您的ViewController
中的某个属性。然后将设置为false
而不是true。
您的代码应该是这样的:
let myConstraint = firstView.topAnchor.constraint(equalTo: secondView.bottomAnchor, constant: 15)
现在,来激活它:
myConstraint.isActive = true
并禁用它:
myConstraint.isActive = false
答
删除约束将来会被弃用。
这是做相同的替代方法。
启用/禁用约束做下面的方法
Objective-C的
viewHeightConstraint.active = YES; // Enable
viewHeightConstraint.active = NO; // Disable
斯威夫特
viewHeightConstraint.isActive = true // Enable
viewHeightConstraint.isActive = false // Disable
+0
是什么viewHeight?这是你打算激活/激活的观点吗?我认为它只适用于限制。对不起,我完全不明白你的答案 – Sargot
+1
Objective-C –
答
你需要一个参考存到自己的约束。
let constraintName:NSLayoutConstraint = firstView.topAnchor.constraint(equalTo: secondView.bottomAnchor, constant: 15)
constraintName.isActive = true
当你不需要它时禁用它。
constraintName.isActive = false
当你想要它的时候启用它。
constraintName.isActive = true
非常感谢! – Sargot
@Sargot欢迎您!如果您对此方法有疑问,请务必询问。 –