Как я могу иметь ширину и высоту надстроек в UIStackView

Скажем, например, я хочу добавить 3 кнопки в представление стека.

Button1 - 200 * 200 (1)

Кнопка2 составляет 150 * 150 (0,75)

Button3 - 100 * 100 (0,5)

Как я могу выполнить это в построителе интерфейса?

Ответ 1

Вы можете сделать это в раскадровке, используя stackview

  1. Добавьте просмотр стека с помощью Alignment Center и Distribution Fill.
  2. Ограничения на просмотре стека расположены по центру по горизонтали и по центру по вертикали.
  3. Теперь добавьте три кнопки.
  4. Ограничения на button1 это высота и ширина = 200
  5. Ограничения на button2 это высота и ширина = 150
  6. Ограничения на button3 это высота и ширина = 100

Установка показана на рис:

enter image description here

У вас возникают конфликты из-за свойства выравнивания, которое в вашем случае оно заполняет. сделать это центр, и это сделано.

Также мы можем добавить интервал между кнопками. Если мы установим Distribution Equal Spacing и добавим ограничение высоты для стека с высотой больше, чем высота кнопок.

Это вертикальный вид стека. Вы можете проверить то же самое с горизонтальным просмотром стека.

Надеюсь, это сработает для вас.

Ответ 2

Для тех, кто ищет решение для UIView, вот оно,

UIStackView гарантирует, что его упорядоченные подпредставления сохраняют ту же пропорцию друг к другу, когда ваш макет увеличивается и уменьшается. Однако, в отличие от других вариантов распространения, пропорциональные представления должны иметь внутренний размер содержимого.