StackView не отображается правильно на всех размерах экрана - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть ViewController, который содержит Stack View.В этом Stack View есть еще 3 Stack View.Первый содержит 3 метки, второй содержит больше видов стека с кнопками и метками, а третий содержит 2 кнопки и метку.А внизу есть кнопка.Макет хорош для размеров экрана от 4,7 "и больше. Но когда размер экрана меньше, он обрезает верхний вид стека. Я попытался установить ограничения на передний, задний, верхний и нижний в различных вариациях (си без ограничений сверху и снизу) Но я не могу заставить его работать должным образом. Я прикрепил скриншоты разных типов экранов.

Screen size 4,7

Screen size 4

РЕДАКТИРОВАТЬ * В зависимости от выбора из предыдущего ViewController, средний Stack View (тот, что с флажками) может быть isHidden Когда он скрыт, видправильно.

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Немного сложно диагностировать происходящее, не видя ограничений, которые вы применяете к представлениям, однако я порекомендую вам кое-что, что может помочь:

  • Установите интервал между представлениями, используя классы размеров, чтобы вы могли установить правильный в зависимости от размера экрана и избежать наложения с представлениями ниже.

enter image description here

  • Если вы это делаете, не устанавливайте ограничение высоты для любого стека.
  • Чтобы выровнять верх StackView Я бы использовал не только верхнее ограничение для верхней панели (типа больше или равно), но также вертикальное ограничение центра с правым множителем (с высоким приоритетом). Таким образом, вы гарантируете, что верхний вид стека выровнен по вертикали пропорционально размеру экрана, а с верхним ограничением вы убедитесь, что stackView не скрывается под верхней панелью.
  • Убедитесь, что вы скрываете правильный стек.
0 голосов
/ 17 сентября 2018

Обычно вы не устанавливаете высоту на UIStackView. Они зависят от его содержания. Это приведет к тому, что ваш стек будет выходить из высоты экрана Вы использовали иерархию представлений? Если вы хотите охватить телефоны небольшого размера, вы можете поместить свой основной стековый вид в scrollView, чтобы по-прежнему иметь возможность видеть весь контент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...