Попытка изменить размеры моих контейнеров UIView, чтобы они соответствовали меньшим размерам экрана iPhone - PullRequest
0 голосов
/ 23 мая 2019

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

Я правильно ограничил виды, метки и кнопки, и все выровнено, но при просмотре приложения на экране меньшего размера я не совсем понимаю, как изменить размеры своих контейнеров UIView, чтобы изменить их размеры, чтобы они подходили для меньших экранов.

На маленьких экранах моя кнопка не отображается, потому что размер экрана слишком мал. UIView - это проблема, и стековые представления внутри них также должны изменять размер или уменьшать текст, чтобы соответствовать всему экрану.

Изображение моей раскадровки и соответствующие размеры экрана

enter image description here

1 Ответ

0 голосов
/ 23 мая 2019

"Я не до конца понимаю, как изменить размеры своих контейнеров UIView, чтобы изменить их размер, чтобы они подходили для меньших экранов." -UIViews не будет изменять размер в соответствии с экраном, вам придется добавить ограничение для нихтак что они выбирают свою ширину и высоту.В качестве альтернативы, вы должны установить ограничение для фиксированной высоты и ширины.

По моему мнению, для поддержки меньшего размера экрана вы должны использовать scrollviews как родительское представление.Так что пользователь может прокручивать приложение.Также вы можете указать относительную ширину и высоту для представлений внутри scrollview.Scrollviews требуются, потому что вы всегда будете хотеть некоторую минимальную ширину и высоту для кнопок, надписей и т. Д. В противном случае на больших экранах, таких как Ipad, они будут очень большими, а на меньших экранах они будут очень маленькими.

Вы можете использоватьTPKeyboardAvoidingScrollView: Как использовать TPKeyboardAvoidingScrollView , или просто Google для этого.Он обрабатывает задачу отображения и скрытия клавиатуры, что, в противном случае, является головной болью.

Вот как я думаю, вы можете решить вашу проблему: Задайте минимальную высоту и ширину для вашего верхнего вида (желательно прокрутки).Теперь добавьте другие виды внутри него и используйте относительную ширину и высоту.В относительной ширине и высоте вы даете значения в соотношениях.Здесь вы можете получить представление о том, как это сделать: - Задание ширины в% значений в autolayout .Также добавьте дополнительные ограничения на ваши внутренние виды для минимальной высоты и ширины, чтобы они не опускались ниже определенного размера.

Я бы не советовал, но вы всегда можете использовать UIScreen.main.bounds.size.width и UIScreen.main.bounds.size.height, чтобы получить ширинуи высота экрана.И в соответствии с установленными значениями для ваших ограничений в вашем классе представления / контроллера.Вот ссылка для установки значения ограничения в классе swift: программно установить значение ограничения

...