2017-02-20 12 views
0

Я чувствую себя очень плотно, чтобы спросить об этом, но я попробовал несколько решений и не смог придумать желаемый результат. У меня есть 2 UIViews, которые представляют собой subviews более крупного UIView, который является подпунктом scrollView. Эти два представления - это регистрационные окна входа в систему & соответственно, и пользователь может пронести между ними для соответствующего доступа к приложению. Однако по какой-то причине scrollview не будет прокручиваться по горизонтали между этими двумя видами. Образец, который я ищу, не использует код для достижения этого, и я точно имитировал ограничения. Это может показаться глупым, но есть ли у кого-нибудь какие-либо предложения о том, как я могу достичь этого горизонтального свитка?прокрутите по горизонтали с uiscrollview полностью через раскадровку и автоспуск

ответ

2

«У меня есть 2 UIViews которые подвиды более крупного UIView, который является подтаблицей из Scrollview»

ОК, допустим, есть Sub1 и Sub2, внутри ContainerView (назовет его CV), который находится внутри ScrollView (SV).

В Interface Builder:

  • Sub1 и Sub2 каждого из них 300 ширина
  • резюме должно быть 600-ширину, чтобы держать SUB1 и SUB2 бок о бок
  • ширина
  • СВ должна быть 300 - вы увидите только Sub1

Чтобы прокрутить ScrollView, ширина его содержимого должна быть больше его собственной ширины. Если вы устанавливаете ограничения Leading и Trailing для CV относительно SV, это будет определять ширину содержимого.

Это звучит, как ваши ограничения "ContainerView" являются не набора на Scrollview

Надеется, что это нормально, чтобы эти изображения здесь ... все равно ...

SV - ScrollView - синий

CV - Контейнер View - розовый

Sub1 и Sub2 желтые

Начните с Scroll View, 300 х 300 и по центру в обоих направлениях:

enter image description here

Добавить в UIView - это будет CV - в SV, на 8,8 с размером 240 х 128 (мы по умолчанию изменится, что сразу же), и добавьте ведущий и Top ограничения 8 каждого:

enter image description here

изменить ширину и высоту CV до 600 х 120, и установить ширину и высоту ограничений. Половина зрения теперь распространяется вправо, за пределы края SV:

enter image description here

Добавить два подвидов в CV - для демонстрации, я использовал UILabels. Установите их ширину x высотой до 50 x 30, а позицию Sub1 - 8,8.

enter image description here

Дайте SUB1 Left, Top (8,8) и ширину и высоту (50x30) ограничений. Это будет держать его «прижат» в верхней левой части резюме:

enter image description here

Дайте SUB2 Ширина и высота (50x30) ограничения, и снизу и справа/ведомой ограничения 8,8. Когда вы установите эти ограничения, нажмите кнопку «Обновить кадры», чтобы автоматически переместить метку Sub2 на место - «закреплено» в нижнем правом углу CV (больше не отображается в IB):

enter image description here

Теперь настоящая ключевая часть: дайте ограничениям на право/конец и нижний предел CV по 8 каждый. Это то, что использует автоматическая макета для определения ContentSize для SV. Если вы запустите приложение, теперь вы сможете прокручивать его по горизонтали от Sub1 до Sub2.

enter image description here

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

Исходный код здесь: https://github.com/DonMag/ScrollViewConstraints

Надежда, что помогает :)

+0

да я считаю, что это вопрос. Но я все еще недоумеваю от вашего использования здесь. Когда вы говорите «относительно SV», предлагаете ли вы совмещать SV & CV вместе и затем устанавливать их передний и задний края? – Onicha21

+0

Да, смутно ... Я подниму визуальную помощь ... – DonMag

+0

ОК, или если у вас был сайт с подобной информацией, я был бы рад узнать, что тоже – Onicha21

Смежные вопросы