Быстрое автоматическое расположение с раскадровкой - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть вид, разделенный на 5 частей с 4 строками (это тоже виды с высотой 1). Я заставляю свое приложение swift реагировать на устройства Apple разных размеров, но проблема в том, что позиция маленьких представлений не меняется в зависимости от размера устройства, и это делает интерфейс неприглядным. Вопрос в том, как сделать так, чтобы позиция y каждого маленького вида принимала значение 1/5 от большого вида. Обратите внимание, что я новичок в множителях и расширенных ограничениях. Я надеюсь, что я ясно изложил свой вопрос и спасибо заранее. Редактировать: картинка 1 picture2 Извините, я не могу загрузить изображение из-за своей репутации, но вот две ссылки на изображения

Ответы [ 3 ]

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

Я не уверен, как именно вы настроили свои "маленькие" виды, но я бы порекомендовал вам использовать UIStackView для достижения желаемого эффекта. Здесь вы можете узнать больше об этом .

  1. Используя Interface Builder, добавьте Vertical Stack View к вашему контроллеру представления.
  2. Поместите в него ваши "маленькие" взгляды.
  3. Используя Interface Builder, установите для параметра Distribution значение Fill Equally.

После этого UIStackView сохранит для вас высоту маленьких просмотров равной и заполнит ее высотой.

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

Я настроил это, используя UIStackView, содержащий 5 видов и 4 вида, которые служат линиями.

Вот настройка для стека:

stack view setup in Xcode

Вот настройка иерархии представления и ограничений:

view hierarchy and constraints in Xcode


Примечания:

  1. У линий есть ограничения, которые устанавливают их высоту в 1 точку.
  2. Высота просмотра от 2 до 5 установлена ​​равной высоте просмотра 1.
  3. Размер стека ограничен безопасной областью.
0 голосов
/ 17 сентября 2018

Звучит так, будто вы описываете стековое представление (UIStackView) с пятью упорядоченными представлениями в режиме Fill Equally.Это приведет к тому, что каждое из пяти подпредставлений займет 1/5 своей высоты.

enter image description here

enter image description here

...