Как можно использовать NSLayoutYAxisAnchor в качестве переменной?
Как может переменная типа NSLayoutYAxisAnchor
определиться?
Следующее не работает, но, надеюсь, иллюстрирует, что я имею в виду:
let anAnchor: NSLayoutYAxisAnchor = .topAnchor
NSLayoutConstraints.activate([
viewA.anAnchor.constraint(equalTo: viewB.anAnchor)
])
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.
Вы можете использовать его в качестве ключевого пути в Swift 4 следующим образом:
let anAnchor = \UIView.topAnchor
.topAnchor
это не тип перечисления, это свойство для UIView
,
Поэтому до Swift 4 невозможно установить его как переменную.