iOS: как установить ограничения для UIScrollView

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

Я пытался использовать UIScrollView, но не могу установить ограничения в Interface Builder. Может ли кто-нибудь проиллюстрировать правильный способ сделать это?

Давайте рассмотрим страницу, на которой есть UILabel с длинным текстом и пара UIImageView внизу текста.


person Daniele B    schedule 30.11.2015    source источник
comment
Я ответил на аналогичный вопрос, не могли бы вы перепроверить, пожалуйста?   -  person Islam Q.    schedule 30.11.2015
comment
Взгляните на этот ответ.   -  person Kampai    schedule 30.11.2015


Ответы (1)


UIScrollView имеет 2 важных свойства при работе с ограничением autolayout и функцией прокрутки. Это размер и размер контента.

UIScrollView размер — это размер UIScrollView, связанный с его супервизором. Вы можете установить его ограничение, закрепив каждый из верхних, конечных, ведущих и нижних элементов в его супервизоре.

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

Предположим, например, что у вас есть один UILabel и один UIImageView под меткой.

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

  1. установить верхнее, начальное, конечное ограничение пробела от UILabel до UIScrollView
  2. установить UILabel ограничение по высоте и ширине
  3. подключите ограничение высоты к коду, чтобы вы могли изменить его значение.
  4. установите UIImageView верхнее ограничение на UILabel
  5. установите UIIMageView конечное, начальное и нижнее пространство на UIScrollView
  6. установить UIImageView ограничение по высоте и ширине
  7. измените ограничение высоты UILabel на основе текста и вызовите layoutIfNeeded
person seto nugroho    schedule 30.11.2015