Ограничить UIView's пропорционально
Я хочу позиционировать свое мнение относительно. Я хочу использовать проценты, а не пиксели. Скажем, я хочу расположить центр кнопки на 25% от высоты ее суперпредставления. Как бы я это сделал?
Один из способов сделать это будет:
button.topAnchor.constraint(
equalTo: superView.topAnchor,
constant: /* compute constant "dynamically")
.isActive = true
Но это кажется глупым, потому что у нас есть multiplier
параметр во многих API-функциях Layout Margin.
Но все же, если я наберу button.centerYAnchor.constraint
ни одно из предложенных дополнений не показывает никаких функций, которые принимают multiplier
аргумент кроме одного с systemSpacing
во имя. Я изучил "системный интервал", но не могу понять, что он делает.
Если у меня есть это ограничение:
button.topAnchor.constraintEqualToSystemSpacingBelow(rootView.topAnchor, multiplier: 0.2).isActive = true
Представление - это просто позиция прямо под вершиной своего superView.
1 ответ
Я не нашел способ сделать это с помощью якорей макета, но вот как это сделать, создав NSLayoutConstraint
непосредственно:
NSLayoutConstraint(item: button, attribute: .centerY,
relatedBy: .equal, toItem: superView, attribute: .bottom,
multiplier: 0.25, constant: 0).isActive = true