想知道是否有可能创建以下内容:

我想定义两组约束,以便可以在它们之间切换。

例如:

let batchConstraintsA: [NSLayoutConstraints] = (constraintA, constraintB, constraintC, constraintD)

let batchConstraintsB: [NSLayoutConstraints] = (constraintE, constraintF, constraintG, constraintH)


然后,可以停用并激活不同的集合。

batchConstraintsA.deactivate
batchConstrintsB.activate

最佳答案

您可以使用activate(_:)中的deactivate(_:)NSLayoutConstraint完成此操作。您只需要使用约束定义两个数组,然后将每个数组传递给函数即可。

考虑到您的示例,它将变为:

let batchConstraintsA: [NSLayoutConstraints] = [constraintA, constraintB, constraintC, constraintD]
let batchConstraintsB: [NSLayoutConstraints] = [constraintE, constraintF, constraintG, constraintH]

NSLayoutConstraint.deactivate(batchConstraintsA)
NSLayoutConstraint.activate(batchConstraintsB)


您可以阅读有关activate(_:) heredeactivate(_:) here的更多信息。

09-25 18:45