2015-10-08 1 views
0

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

Иерархия мнение:

view (UIView) 
    - scrollView (UIScrollView) 
     - contentView (UIView) 
      - label (UILabel) 

Ограничения являются (как это было предложено here и везде):

Scrollview:

  • Ведущее пространство для края контейнера
  • Заградительное пространство для поля контейнера
  • Вертикального расстояния для направляющей верхнего расположения
  • Вертикального расстояния в руководство нижней части макета

contentView:

  • Ведущего пространство контейнер край
  • Скользящего пространство контейнера край
  • Вертикальных расстояние до верхнего края контейнера
  • распорных Вертикальные контейнерный нижний край
  • Равных ширины для «вида»

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

Это дает мне ошибку:

Scroll View needs constraint for: height.

Я также добавить метку внутри вида контента, и сдерживать его ширину, высоту, ведущее место и вертикальное пространство для контейнера сверху (т.е. фиксированного размера, и возлагал на верхний левый угол contentView).

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

В любом случае я добавляю все недостающие ограничения: с красной осьюганом в навигационной панели - для просмотра прокрутки и "| -triangle- |" (с выбранной меткой)

Когда я запускаю приложение, мой макет появляется кратко, а затем исчезает до белого (цвет фона представления контроллера).

ответ

1

Вчера я сделал ту же самую ошибку. Вероятно, вы разместили свой интерфейс в LaunchScreen.storyboard вместо Main.Storyboard или похожи. Launchscreen предоставляет только заставку. Что касается ваших проблем с автоопределением, я предлагаю использовать встроенную функцию «Сброс до предложенных ограничений».

+0

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

+0

У меня нет табличного вида; просто UIScrollView. –

1

Это ваша точка зрения иерархия

view (UIView) 
    - scrollView (UIScrollView) 
     - contentView (UIView) 
      - label (UILabel) 

Все ограничения добавлены вами ОКЕЙ, но вы должны добавить еще одно ограничения на вашем contentView согласно вашей свитке.

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

+0

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

+0

для горизонтальной прокрутки добавить шесть constriant на contentView Ведущего места для края контейнера Скользящего пространства края контейнера расстояния по вертикали для контейнера верхнего поля расстояния по вертикали для контейнера нижнего края равной ширину к «Scrollview» набор мультиплеер в соответствии, что, сколько прокрутка, которую вы хотите. Равная высота до "scrollView" – suthar

+0

отправьте свой почтовый ящик, я пришлю вам демо для этого – suthar