Как разместить UILabel и UIButton и центрировать их?

Я хочу разместить метку рядом с кнопкой, например:

[--[UILabel]-[UIButton]--]

Я хочу, чтобы они были сосредоточены внутри его супервизора, учитывая, что UILabel и UIButton имеют динамическую длину текста.

Как это сделать с помощью AutoLayout или UIStackViews?

Спасибо,


person Juan Herrero Diaz    schedule 22.10.2016    source источник


Ответы (4)


Как насчет того, чтобы инкапсулировать его в представление и центрировать это представление для наблюдения? Что-то вроде:

Основной вид[ централизованный вид[Ярлык-кнопка]]

«Централизовать Не указывайте фиксированную ширину кнопки или метки, просто прикрепите их горизонтально

person Sunil Chauhan    schedule 22.10.2016

Совместите метку и кнопку с супервизором. Если вы используете раскадровку или файл XIB, выберите метку Horizontally Centered Constraint и в Инспекторе размеров (в правом столбце Xcode, 5-й элемент) выберите Label.Trailing вместо Label.X. И присвойте ему значение (или ноль, как хотите. Это будет константа между меткой и центром представления).

После их установки Center X Alignment Constraint для метки в Size Inspector должно выглядеть так:

«Ограничение

Сделайте то же самое для кнопки. Но на этот раз выберите Button.Leading вместо Button.X и задайте для него константу. После их установки Leading Alignment Constraint для кнопки в Size Inspector должно выглядеть так: Главное ограничение выравнивания UIButton в инспекторе размеров

В этом решении Label и Button будут независимы друг от друга. Вы можете определить их другие свойства самостоятельно.

Ваш результат должен выглядеть следующим образом: Autolayout UILabel и UIButton

person Candost    schedule 22.10.2016

Поместите метку и кнопку в StackView и задайте ограничения для этого StackView (центр по горизонтали, центр по вертикали) для супервизора.

person maresca    schedule 22.10.2016

С автомакетом. Настройте свою точную ситуацию:

  1. Поместите метку и кнопку по центру вида, как показано
  2. Блокировка ведущих, конечных и верхних ограничений. (Не ограничивайте низ или высоту)
  3. Ограничьте метку и кнопку равной шириной.
  4. Установить метку на 0 строк.
  5. Установите кнопку на перенос слов.
  6. Наслаждаться.

введите описание изображения здесь

person Frankie    schedule 22.10.2016
comment
Голосование против без комментария никому не помогает учиться. Я, ОП или любой, кто может прочитать это в будущем. Насколько я могу судить, это отвечает на вопрос с минимальными усилиями, и я показываю, что это работает в симуляторе. - person Frankie; 24.10.2016