Добавить ScrollView в существующий вид
Я разрабатываю небольшое приложение в Swift 2.0. У меня есть представление со следующей иерархией:
![введите описание изображения здесь]()
Теперь элементы, размещенные в этом представлении, не могут быть полностью отображены в нем, поэтому я хотел бы использовать ScrollView
, чтобы иметь возможность прокручивать все содержимое.
Как я могу встроить все содержимое моего View
в новый ScrollView
? Могу ли я сделать это программно с помощью кода?
Ответы
Ответ 1
ОБНОВЛЕНИЕ: существует более простой способ сделать это, чего я не знал, когда отправил этот ответ
1) Перейдите в viewcontroller на раскадровке и нажмите что-нибудь в нем и нажмите Command + A
. Это выберет все элементы в представлении.
2) Перейдите к Editor -> Embed In -> Scroll View
. Это будет включать все метки, представления и т.д. В scrollView.
3) Выберите scrollview
, который вы только что вложили. Нажмите Control
и перетащите его в соответствующий файл класса viewcontroller и создайте выход scrollview
.
4) Добавьте это в свой viewDidLoad()
scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height+100)
Убедитесь, что высота для contentSize больше, чем размер вашего представления.
ДОБАВИТЬ ПРОСМОТР ПРОСМОТРА
1) Перетащите scrollview
из библиотеки объектов на ваш viewcontroller
в раскадровке и создайте выход в свою программу как "scrollView".
2) Нажмите на viewcontroller
и перейдите к инспектору размера и отметьте ширину и высоту.
3) Нажмите на scrollview
и установите width
и height
так же, как viewcontroller
. и установите значения X
и Y
равными 0
4) Нажмите на scrollview
и немного потяните его в сторону
5) Нажмите Command+A
, чтобы выбрать все элементы, включая scrollview
. Нажмите Command
и нажмите scrollview
, чтобы отменить выбор scrollview
6) Теперь вы будете иметь все элементы, кроме scrollview
. Теперь нажмите и перетащите их в scrollView.
![Перемещение в scrollView]()
7) Теперь нажмите на scrollview
и установите значения X
и Y
в значение 0 из Инспектора размеров.
8) Добавьте это в свой viewDidLoad()
scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height+100)
Убедитесь, что высота для contentSize больше, чем размер вашего представления.
Это должно создать scrollView для вашего представления. Некоторые элементы могут находиться в несколько другом положении. Вы можете легко исправить их, переместив их на свой рассказ.
Ответ 2
Это можно сделать даже более симпатичным, чем ответ ebby94.
1) Перейдите в viewcontroller на раскадровке и нажмите что-нибудь в нем и нажмите Command + A. Это выберет все элементы в представлении.
2) Перейти к редактору → Вставить In → Scroll View. Это будет включать все метки, представления и т.д. В scrollView.
3) Задайте ограничения вида прокрутки к краям вида.
И ты в порядке! Нет необходимости в розетке.
Ответ 3
Я была такая же проблема. Мне нужно было добавить scrollview к существующему представлению. Но у моего основного представления контейнера есть много представлений внутри него. И они были связаны друг с другом. Так что я боялся. Наконец-то я это сделал. процесс приведен ниже.
-
Дублируйте ваш вид (корневой вид). Для этого сначала выберите корневой вид, затем нажмите Ctrl + D
-
Теперь удалите все дочерние представления внутри корневого представления.
-
Теперь добавьте представление прокрутки к корневому представлению и установите ограничение на 0,0,0,0.
-
Теперь добавьте дублирующийся (который вы продублировали) вид в представление прокрутки и установите ограничения на 0,0,0; 0 также установите желаемую высоту.
-
Установите ширину дублированного вида равной ширине с корневым видом.
-
Теперь выберите viewController, зайдите в инспектор размера, выберите свободный размер формы. Затем установите высоту, которую вы ввели с двойным видом.
-
Вы почти сделали. Теперь вам нужно связать дочернее представление с выходом или действием, которое вы дали в классе viewController.
Это все.
Ответ 4
Выбор всех элементов и вложение прокрутки (editor- > embed in > scrollView) отлично работает.
Добавление ограничения намного проще, выбирая предупреждение ограничения (Add Missing Constraints).
Ответ 5
Это просто. Команды A и X для определенного контроллера представления в StoryBoard. После этого возьмите вид прокрутки. При просмотре с прокруткой просто возьмите один вид с высотой и шириной вида контроллера вида, равными ширине вида прокрутки. Снова выполните команду V и измените ограничения. Ваша проблема будет решена.