如何定义NSLayoutYAxisAnchor
类型的变量?
以下不起作用,但希望说明我的意思:
let anAnchor: NSLayoutYAxisAnchor = .topAnchor
NSLayoutConstraints.activate([
viewA.anAnchor.constraint(equalTo: viewB.anAnchor)
])
答案 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之前将其设置为变量是不可能的。