无法在swift 2中转换类型'[NSLayoutConstraint]'错误的值

时间:2016-08-09 09:15:41

标签: ios swift swift2 nslayoutconstraint

我想通过添加以下代码行来为UIImageView添加约束:

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

但是xcode告诉我这个错误:

enter image description here

我如何解决此错误?

2 个答案:

答案 0 :(得分:35)

使用addConstraints代替addConstraintconstraintsWithVisualFormat返回一个数组。

您的代码变为:

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

答案 1 :(得分:2)

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

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

所以你可以做的是:

view.addConstraints(horizontalprofileViewConstraint)

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

view.addConstraints(horizontalprofileViewConstraint + verticalprofileViewConstraint)

+为您加入数组。