Представьте себе следующий сценарий. У вас есть UIImageView и UIButton. Первый - 300x360, второй - 210x70. imageview
содержит изображение в каталоге, button
говорит «открытый каталог».Центр два вида по вертикали с использованием NSLayoutConstraint
Я хотел бы расположить элементы в главном окне в соответствии с этими требованиями:
два элемента должны быть центрированы по горизонтали, а именно координаты center.x должны быть все равны (вид, изображение и кнопка);
два элемента должны быть центрированы по вертикали следующим образом: разделитель (гибкий) - изображение - разделитель (фиксированный, допустим, 30 очков) - кнопка - разделитель (гибкий). Самый верхний и самый нижний разделитель должен иметь одинаковый размер (это значение центрировано).
Я не могу заставить это работать, используя NSLayoutConstraint.
До сих пор то, что я делал, центрировало координату X двух элементов, используя NSLayoutAttributeCenterX
и NSLayoutRelationEqual
к тому же атрибуту view
.
Последняя часть, согласно моей идее, заключается в том, чтобы зафиксировать их вертикальное выравнивание. Я пробовал использовать @"V:|-[imageview(360)]-[button(70)]-|"
, но это не сработает (Unable to simultaneously satisfy constraints.
).
Если я использую @"V:|-[imageview(360)]-[button]-|"
, я получаю все частично в порядке. А именно, верхняя часть идеальна, но кнопка растягивается так, чтобы заполнить промежуток между внутренним разделителем и нижней частью представления.
Как я могу сделать эти элементы фиксированными и позволить Auto-layout просто понять, как их разместить в представлении?
В прошивке 9, посмотрите на UIStackView и UILayoutGuide для решения такого рода проблем. –