Изменить размер UIButton внутри StackView в раскадровке

avatar
artexhibit
8 августа 2021 в 18:31
92
1
2


Недавно я начал изучать Swift и столкнулся со следующей проблемой при автоматической раскладке:

Есть

  • simple structure from the elements: 1 UILabel + 2 UIButtons inside a StackView and UIImage as a background outside StackView: Screenshot
  • StackView имеет 4 ограничения (последние 4, как на моем снимке экрана);
  • 2 кнопки UIButton имеют фиксированную высоту;
  • фон имеет 4 ограничения (первые 4 как на моем скриншоте);

Цель

  • Я хочу, чтобы 2 кнопки UIButton имели фиксированную ширину (250 или 300 или любое число). А при переключении в ландшафтный режим он не растягивался на весь StackView и имел точный вид, как в портретном режиме: Растянутые кнопки
  • Где я хочу, чтобы UILabel был растянут, как сейчас;
  • Я хочу установить его с помощью StoryBoard (без кода)

Проблема

  • Я попытался добавить ограничения фиксированной ширины к обеим кнопкам UIButton, но это не сработало: Ландшафт после фиксированной ширины
  • Я пытался поместить каждую кнопку UIButton в UIView, но безуспешно

Я был бы очень признателен, если бы кто-нибудь помог мне понять и исправить это поведение.
Заранее спасибо!

Источник

Ответы (1)

avatar
aheze
8 августа 2021 в 18:55
0

Я попытался добавить ограничения фиксированной ширины к обеим кнопкам UIButton, но это не сработало

Вы на правильном пути! Вам просто нужно установить выравнивание представления стека на Center.

Stack View "Alignment" set to "Center"

Результат:

Buttons have fixed width and are centered

artexhibit
8 августа 2021 в 20:13
0

Спасибо, aheze, это было довольно легко исправить! Не могли бы вы взглянуть на эти желтые предупреждения? Как избавиться от них? Снимок экрана

aheze
8 августа 2021 в 20:15
0

@Igor обычно ты можешь их игнорировать. Но вы можете получить больше информации здесь: coderhelper.com/questions/45122691/…