Реализация ScrollView в XCode6 с адаптивным макетом и раскадровкой

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

Я хотел бы сделать макет в раскадровке.

Все предлагаемые ответы, которые я могу найти, относятся к разным ситуациям: - Макетирование по коду. - Содержимое - это изображения с присущим размером. - Может работать с autolayout/xcode 5, но я не могу сделать работу для адаптивного макета и xcode6.

Вот визуально о чем я говорю. Желтое поле - это представление, содержащее элементы ввода. Черный ящик представляет то, что можно увидеть в любое время.

Изображение желаемого экрана

Вот что я попробовал, основываясь на моих исследованиях:

  1. Добавлен ScrollView внутри основного вида, который полностью заполняет его. (Это должен быть черный прямоугольник, я думаю.)
  2. Добавлен вид (в качестве контейнера содержимого) внутри прокрутки. (Желтый прямоугольник)
  3. Добавлены элементы, необходимые для просмотра содержимого. Чтобы перейти ниже того, что видно на экране, я перетащил и расширил вид, чтобы он был достаточно большим, чтобы в нем было все.
  4. Добавлены ограничения, прикрепляющие представление контента к просмотру прокрутки со всех сторон.
  5. Добавлены ограничения, делающие вид содержимого такой же ширины и высоты, как вид верхнего уровня.
  6. Добавлены ограничения на ширину и высоту всех элементов и от их сторон к сторонам контейнера.

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

Может кто-нибудь помочь решить, что я чувствую, должно быть, общая проблема?

Благодарю.

1 ответ

Решение

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

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

  1. Добавьте вид прокрутки внутри основного вида. У прокрутки заполнить весь вид.
  2. Добавить представление содержимого внутри прокрутки. Разверните его по мере необходимости, чтобы добавить свой контент (ярлыки, кнопки и т. Д.)
  3. Добавьте ограничения, прикрепляющие представление контента к представлению прокрутки со всех сторон.
  4. Добавьте ограничение, прикрепляющее ширину представления содержимого к ширине основного представления, а не ширину прокрутки. Оставьте высоту в покое. (Ограничение по высоте - это лишний бит, который мне не нужен.)
  5. Добавьте ограничения, прикрепляющие вид прокрутки к основному виду со всех сторон. (Это ключевое дополнение.)

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

ограничения

Другие вопросы по тегам