如何将 `NSLayoutYAxisAnchor` 用作变量?

How can a `NSLayoutYAxisAnchor` be used as variable?

如何定义NSLayoutYAxisAnchor类型的变量?

以下内容无效,但希望能说明我的意思:

let anAnchor: NSLayoutYAxisAnchor = .topAnchor

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

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

let anAnchor = \UIView.topAnchor

.topAnchor 不是 枚举类型,它是 属性 对于 UIView .
所以在Swift4之前是不可能设置为变量的。

您可以使用 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.