Ограничение ширины ScrollView с фиксированной шириной - PullRequest
0 голосов
/ 16 ноября 2018

Я работаю над приложением в XCode 10 с Swift 4. Я настроил свой вид в раскадровке для iPhone (wC, hR) следующим образом:

  • ПрокруткаВид (вверху: суперпредставление, внизу: суперпредставление, трейлинг: безопасная зона, ведущая: безопасная зона)

  • Внутри прокрутки находится вид контейнера: T, B, L, R для суперпредставления, равная ширине базовому виду (т.е. экрану)

  • Внутри контейнера есть несколько меток и изображений.

У меня нет проблемс этой настройкой.

Проблема заключается в том, что я делаю настройки для iPad (wR, hR).Здесь я отключил конечные и ведущие ограничения и вместо этого добавил ограничение ширины 690 и выровнял по горизонтали для суперпредставления.Когда я делаю это, я получаю ошибку ограничения, которая говорит: «Неоднозначная прокручиваемая ширина контента».

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

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Я думаю, вам нужно использовать два представления "контейнера".

для iPhone (wC, hR):

  • scrollView - вверх: superview, внизу: superview, трейлинг: безопасная зона, ведущая: безопасная зона)
  • «SuperContainerView» подпредставление scrollView - Top / Bot / Lead / Trail к scrollView (superView), равная ширина scrollView
  • «ContainerView» подпредставление SuperContainerView - Top / Bot / Lead / Trail к SuperContainerView

Ограничения в подпредставлениях ContainerView будут контролировать высоту ContainerView, которая будетконтролировать высоту SuperContainerView, которая будет управлять прокруткой.

Для iPad (wR, hR):

  • Отключить ограничения Leading и Trailing в ContainerView
  • добавить ограничение Width для690
  • добавить ограничение CenterX в SuperContainerView

Результаты ... Зеленый - это ContainerView, синий - SuperContainerView (вид прокрутки со вставкой 8 на каждой стороне):

enter image description here

enter image description here

enter image description here

Если вы хотите, чтобы максимальная ширина 690 при работе на телефоне повернулась наальбомная ориентация, вам нужно будет сделать аналогичные изменения ограничений для wC, hC

0 голосов
/ 16 ноября 2018

Хотя это не имеет особого смысла, это может помочь, если вы также добавите выравнивание горизонтальных и вертикальных ограничений по центру к Container View (в отношении его superview, Scroll View).

Это согласно этому ответу и моей собственной борьбе с АЛ.

...