swift 2 中无法转换类型为“[NSLayoutConstraint]”的值错误

Cannot convert value of type '[NSLayoutConstraint]' error in swift 2

我想通过添加这行代码向 UIImageView 添加约束:

addConstraint(NSLayoutConstraint.constraintsWithVisualFormat("H:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": userProfileImageView]))

但是 xcode 告诉我这个错误:

如何解决这个错误?

使用 addConstraints,而不是 addConstraintconstraintsWithVisualFormat returns 一个数组。

您的代码变为:

addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[v0]|", options: [], metrics: nil, views: ["v0": userProfileImageView])
let horizontalprofileViewConstraint = NSLayoutConstraint.constraintsWithVisualFormat("H:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": userProfileImageView]

如果您单击选项并将鼠标悬停在 horizontalprofileViewConstraint 上,您将看到其类型为 [NSLayoutConstraint],这已经是一个数组。

所以你可以做的是:

view.addConstraints(horizontalprofileViewConstraint)

如果您有多个视图,那么您可以这样做:

view.addConstraints(horizontalprofileViewConstraint + verticalprofileViewConstraint)

+ 为您加入数组。