2017-07-31 64 views
0

如何定義NSLayoutYAxisAnchor類型的變量?如何使用'NSLayoutYAxisAnchor`作爲變量?

下不工作,但我希望說明我的意思:

let anAnchor: NSLayoutYAxisAnchor = .topAnchor 

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

是的,但你怎麼能確定它爲'.topAnchor'? NSLayoutYAxisAnchor似乎是y軸上任何錨的常見類型。 – Manuel

回答

2

你可以用斯威夫特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. 
0

可以在斯威夫特4使用它作爲一個的keyPath這樣的:

let anAnchor = \UIView.topAnchor 

.topAnchor枚舉類型,它是屬性對於UIView
因此,在Swift 4之前不可能將它設置爲一個變量。

+1

Swift 4關鍵路徑怎麼樣?這就是你如何將一個屬性引用到一個變量中 – matt