2017-01-19 3 views
0

Я пытаюсь создать UIScrollView, который не полностью охватывает экран UIViewController. См. Снимок экрана ниже. Я помещал некоторые сегментированные элементы управления только для интервалов и иллюстраций. Я также уменьшил содержимое (зеленый), чтобы показать, что он находится в режиме прокрутки (голубой). Прокрутка - примерно половина экрана, а представление содержимого - около 1000 (произвольная высота).Добавление небольшого UIScrollView в UIViewController

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

Я пробовал в течение нескольких часов, чтобы получить эту работу, но я всегда сталкиваюсь с рядом структурных проблем, таких как неопределенность. Кстати, я делаю это в Swift 3 под Xcode 8.

Кто-нибудь сделал это, и если да, то как вы могли это сделать?

Цените любой ответ.

Дэвид

Screenshot of Interface Builder

ответ

0

Размер неоднозначность не столько «структурная проблема» из точки зрения прокрутки с ограниченным размером, а результат недостающих ограничений. Невозможно ответить на те, которые вы пропустили, не зная, какие из них вы определили и что именно неоднозначно.

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

Это также упоминается в третьем пункте в документации Apple:

Вот некоторые замечания, касающиеся поддержки Auto Layout для UIScrollView:

  • В общем, Auto Layout учитывающую сверху, слева , нижний и правый края изображения являются видимыми краями. То есть, если вы привязываете представление к левому краю своего супервизора, вы действительно привязываете его к минимальной x-значению границ супервизора. Изменение начального значения границ надзора не меняет положение представления.
  • Класс UIScrollView прокручивает его содержимое, изменяя начало его границ. Чтобы сделать эту работу с помощью автоматического макета, верхний, левый, нижний и правый края в представлении прокрутки теперь означают края его содержимого.
  • Ограничения на представлениях прокрутки должны приводить к заполнению размера, которое затем интерпретируется как размер содержимого прокрутки. (Это не следует путать с методом intrinsicContentSize, используемым для автоматической компоновки.) Чтобы размер кадра представления прокрутки с помощью Auto Layout, ограничения должны быть либо явными относительно ширины и высоты прокрутки, либо края прокрутки должны быть привязан к представлениям вне своего поддерева.
  • Обратите внимание, что вы можете сделать представление подпрограммы вида прокрутки, чтобы плавать (а не прокручивать) по другому прокручиваемому контенту, создавая ограничения между представлением и представлением вне поддерева вида прокрутки, например надвью просмотра прокрутки.
+0

Благодарим за разъяснения. Я как бы новичок во всем этом, поэтому буду продолжать учиться. – Davecity

+0

Добро пожаловать. – hoshy