Подтвердить что ты не робот

UIScrollView и setContentOffset

Мой вопрос об этом методе:
(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

Я прочитал документацию, но я не понимаю, для чего этот метод.

спасибо за ваши ответы.

4b9b3361

Ответ 1

Как упоминалось в documentation.

Прокрутка до определенного смещения

Прокрутка в определенное верхнее левое положение (свойство contentOffset) может выполняться двумя способами. Метод setContentOffset:animated: прокручивает содержимое до указанного смещения содержимого. Если анимированный параметр YES, прокрутка будет обновляться с текущей позиции до указанной позиции с постоянной скоростью. Если анимированный параметр NO, прокрутка выполняется немедленно, и анимация не выполняется. В обоих случаях делегаты scrollViewDidScroll: сообщений. Если анимация отключена или если вы настроили смещение содержимого, напрямую установив свойство contentOffset, делегат получает одно сообщение scrollViewDidScroll:. Если анимация включена, то делегат получает серию сообщений scrollViewDidScroll: по мере запуска анимации. Когда анимация завершена, делегат получает сообщение scrollViewDidEndScrollingAnimation:.

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

Этот метод также вызывает делегат scrollViewDidScroll: i.e делегировать метод класса UIScrollView, через который вы можете поддерживать количество прокрутки UIScrollView.

Ответ 2

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

Свойство contentArea UIScrollView определяет логический размер вашего представления (красный прямоугольник). Видимая область вида прокрутки представлена ​​зеленым прямоугольником. ContentOffset - верхний левый угол видимой области. При изменении contentOffset видимая область будет перемещаться.

(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

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

Надеюсь, это поможет.

enter image description here