如何将`NSLayoutYAxisAnchor`用作变量?

时间:2017-07-31 21:59:20

标签: ios swift nslayoutconstraint nslayoutanchor

如何定义NSLayoutYAxisAnchor类型的变量?

以下不起作用,但希望说明我的意思:

let anAnchor: NSLayoutYAxisAnchor = .topAnchor

NSLayoutConstraints.activate([
   viewA.anAnchor.constraint(equalTo: viewB.anAnchor)
])

2 个答案:

答案 0 :(得分:2)

您可以使用Swift 4的新密钥路径功能执行此操作:

let anAnchor = \UIView.topAnchor
let v1 = UIView(); let v2 = UIView() // just for testing purposes
let constraint = v1[keyPath:anAnchor].constraint(equalTo:v2[keyPath:anAnchor])
// now you can activate the constraint, etc.

答案 1 :(得分:0)

您可以将它用作 Swift 4 中的关键路径,如下所示:

let anAnchor = \UIView.topAnchor

.topAnchor 是枚举类型,它是UIView属性
因此,在Swift 4之前将其设置为变量是不可能的。