删除以编程方式添加的约束

时间:2017-06-20 10:24:06

标签: ios swift ios-autolayout

我阅读了很多关于如何删除通过故事板添加的约束,拖动插座然后删除等的主题,但我如何删除以编程方式添加的约束?例如

firstView.topAnchor.constraints(equalTo: secondView.bottomAnchor, constant: 15).isActive = true

如何停用它,然后在需要时再次启用它。也许应该是这样的?

firstView.removeConstraint(firstView.topAnchor.constraints(equalTo: secondView.bottomAnchor))

3 个答案:

答案 0 :(得分:2)

您应该将约束分配给ViewController中的媒体资源。然后将.isActive设置为false而不是true。

您的代码应如下所示:

let myConstraint = firstView.topAnchor.constraint(equalTo: secondView.bottomAnchor, constant: 15)

现在,要激活它:

myConstraint.isActive = true

并禁用它:

myConstraint.isActive = false

答案 1 :(得分:0)

您需要保留对约束的引用。

Object

不需要时禁用它。

let constraintName:NSLayoutConstraint = firstView.topAnchor.constraint(equalTo: secondView.bottomAnchor, constant: 15)
    constraintName.isActive = true

如果需要,请启用它。

    constraintName.isActive = false

答案 2 :(得分:-3)

将来不推荐删除约束。

这是另一种方法。

使用以下方法启用/禁用约束

Objective-C

viewHeightConstraint.active = YES;      // Enable
viewHeightConstraint.active = NO;       // Disable

<强>夫特

viewHeightConstraint.isActive = true   // Enable
viewHeightConstraint.isActive = false  // Disable