Авторазмер высоты суперпредставления в соответствии с самой высокой кнопкой подпредставления - PullRequest
0 голосов
/ 06 июня 2019

enter image description here

У меня есть следующий макет.Желтый вид - buttonsContainerView, который действует как контейнер для 3 кнопок одинаковой ширины, которые он удерживает.Все три кнопки имеют вид желтого цвета buttonsContainerView.Все ограничения, которые я дал, просты, видимы и понятны на скриншоте, но я все же объясню их ниже.

  • buttonsContainerView - (желтый вид) Закреплено на вершине viewController 's view safeArea со вставкой 20.Его ведущий и трейлинг прикрепляются к лидеру и трейлингу view.
  • Button 1 - Верх, низ и ведущий прикреплены к верху, низу и ведущему buttonContainerView соответственно.Трейлинг прикреплен к ведущему Button 2.
  • Button 2 - Верх, низ прикреплен к верху и низу buttonsContainerView соответственно.Ведущий закреплен за Button 1 трейлингом.Трейлинг прикреплен к ведущему Button 3.
  • Button 3 - Верх, низ и трейлинг прикреплены к верху, низу и трейлингу buttonsContainerView соответственно.Ведущий прикреплен к трейлингу Button 2.
  • Равная ширина - Все три кнопки имеют одинаковое ограничение ширины друг с другом.

Проблема - Любая из этих трех кнопок может динамически получать более длинный заголовок и в зависимости от размера экрана телефона может не помещаться в одну строку.Я хочу, чтобы высота моего buttonsContainerView изменила его высоту в соответствии с самой высокой кнопкой, то есть кнопкой с самым длинным заголовком, следовательно, большей высотой (на скриншоте - Button 2, центральная кнопка).В моем случае buttonsContainerView занимает высоту самой маленькой кнопки (Кнопка 1 и Кнопка 2 на скриншоте).Как мне добиться этого с помощью AutoLayouts?

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Этого можно добиться, используя комбинацию ограничений верхних вставок по следующему алгоритму:
1. Добавьте к кнопкам горизонтальные ограничения (слева, справа, одинаковой ширины).
2. Добавьте центральное ограничение по вертикали для всех кнопок.
3. Добавьте ограничения верхней вставки с low priority для всех кнопок.
4. Добавьте большие или равные верхние вставки для всех кнопок с высота приоритет .

Основная идея заключается в ограничениях с низким приоритетом для вертикальных вставок кнопок, механизм автоматического размещения будет пытаться удовлетворить его, но большие или равные верхние вставки не позволят сделать это для маленьких кнопок.

enter image description here

enter image description here

0 голосов
/ 06 июня 2019

Я воссоздал вашу настройку и не могу найти с ней никаких проблем, вот изображение ниже, вы можете показать больше информации об этой настройке кнопок? или, возможно, попробуйте удалить их и добавить снова: enter image description here

...