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

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

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

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

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

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

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

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

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

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

Спасибо.


person tangobango    schedule 02.11.2014    source источник
comment
Пожалуйста, добавьте ограничение для представления прокрутки, которое свяжет представление прокрутки с основным представлением контроллера представления. не используйте ограничение по высоте или ширине, просто ограничивайте пользовательское заполнение, например, конечное, ведущее, верхнее, нижнее пространство.   -  person hardik hadwani    schedule 03.11.2014
comment
@hardick hadwani Спасибо. Это уладило дело. Я опубликую ниже то, что я считаю минимальным набором ограничений, чтобы заставить это работать.   -  person tangobango    schedule 04.11.2014
comment
@hardik hadwani извините за опечатку и спасибо!   -  person tangobango    schedule 04.11.2014


Ответы (1)


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

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

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

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

ограничения

person tangobango    schedule 03.11.2014