2016-04-17 5 views
0

Я уверен, что это как-то связано с ужасным AutoLayout. (Пытались так 2days, чтобы повесить его)Контроллер UIScrollView не полностью прокручивается

Так я освоил это несколько, но теперь у меня есть проблема, когда мой UIScrollView не скроллинг полностью вниз, фотографии гораздо лучше объяснить эти вещи SuperView

это это вид прокрутки enter image description here

это мнение содержания enter image description here

так что проблема скроллинг происходит, но затем снова пружинит вверх. Так что я не в состоянии нажать на кнопку Регистрация

РЕДАКТИРОВАТЬ 1 enter image description here

ответ

3

Edit:

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

Оригинал Ответ:

пара вещей, которые я бы посоветовал здесь.

  1. Во-первых, я знаю, что вы пытались какое-то время, но устраняете все текущие ограничения (болезненные, которых я знаю, но). Сделайте это для ясности как ....

  2. Вид должен быть размером с сценой, похоже, что вы хотите, чтобы прокрутка была полноэкранным, так что тоже должен быть размер сцены.

например. если вы проектируете по 6Plus по умолчанию, размер сцены составляет 414x736, поэтому вид и прокрутка, которые он содержит, также должны быть 414x736.

  1. Только контентный контент должен быть размером с реальным контентом, который вы хотите показать. Скажем, ради аргументов, что содержание 414x1000.

Теперь ограничения для прокрутки просты. Он должен иметь нулевой интервал для всех его краев.

enter image description here

Вы можете добавить вид контента к Scrollview в нескольких направлениях. Способ, которым я пытаюсь это сделать, варьируется от проекта к проекту и зависит в основном от того, насколько сложна сцена. Если это действительно занятая сцена, я сохраняю представление содержимого вне scrollview в построителе интерфейса, чтобы я мог легко работать с ним и визуализировать весь вид. Затем я добавляю представление содержимого в scrollview в коде.

Если его более простой вид, вы можете добавить его внутри scrollview в построителе интерфейса. В конечном счете, каким бы способом вы это ни делали, вы можете потерять видимость представления контента в построителе интерфейса, потому что контентное изображение больше, чем прокрутка, и контент становится недоступным. Так что поиграйте и найдите хороший способ для вас.

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

Примечание: если вы сделаете это пропорционально, ваша жизнь будет проще позже. Если вы сделаете все это с фиксированными высотами, раскадровка будет разбита на разные размеры устройства.

  1. Теперь «сложный бит», и это бит счетчик интуитивно понятен. Вам нужно привязать представление содержимого к scrollview, помните, что высота представления содержимого выше, чем прокрутка. Во всех других обстоятельствах в Interface Builder, прикрепляющем представление к супервизу (0 padding), будет соответствующим образом отрегулировать высоту (или ширину). Для отношения между просмотром прокрутки и его содержимым это не происходит.

Первый контакт contentview

enter image description here

Обратите внимание на -400? Помните, что представление содержимого выше, чем scrollview, и мы немедленно изменим его.

Выберите нижнее ограничение (-400), который мы только что создали:

enter image description here

Выберите стрелку вниз рядом с постоянным значением:

enter image description here

Выберите Стандартных Значение и введите 0 для константы.

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

+0

привет, за любовь к Богу я не могу получить scrollview.top = top. Пожалуйста, см. Мои обновления. – JackyBoi

+0

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

+0

Я удивлен, как у тебя это получилось – JackyBoi

0

Ваш bottomspace к SuperView на вашем представлении содержимого установлен в -74.0, я не знаю, если есть причина, у вас для этого, но попробуйте установить его на -8.0. Я думаю, что ваша точка зрения прокрутки прокрутка до 0.0 метки автоматически

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