Я хочу изложить свою точку зрения относительно. Я хочу использовать проценты, а не пиксели. Скажем, я хочу расположить центр кнопки на 25% от высоты ее супервизора. Как бы я это сделал?
Один из способов сделать это:
button.topAnchor.constraint(
equalTo: superView.topAnchor,
constant: /* compute constant "dynamically")
.isActive = true
Но это кажется глупым, потому что у нас есть параметр multiplier во многих функциях Layout Margin API.
Но все же, если я наберу button.centerYAnchor.constraint, ни одно из предложенных дополнений не покажет никаких функций, которые принимают аргумент multiplier, за исключением одной с systemSpacing в имени. Я изучил «системный интервал», но не могу понять, что он делает.
Если у меня есть это ограничение:
button.topAnchor.constraintEqualToSystemSpacingBelow(rootView.topAnchor, multiplier: 0.2).isActive = true
Представление просто расположено прямо под его вершиной superView.





Я не нашел способа сделать это с помощью якорей макета, но вот как это сделать, создав NSLayoutConstraint напрямую:
NSLayoutConstraint(item: button, attribute: .centerY,
relatedBy: .equal, toItem: superView, attribute: .bottom,
multiplier: 0.25, constant: 0).isActive = true