2012-02-16 4 views
9

Я прочитал Apple, Scroll View Руководство по программированию для прошивки, но до сих пор путает о следующей части:UIScrollView: разница между setContentOffset: анимированным и scrollRectToVisible: анимированная

прокрутки Видового Offset

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

Создание прямоугольника видимую

Также можно прокручивать прямоугольную область, так что видно. Это особенно полезно, когда приложение должно отобразить элемент управления, который находится за пределами видимой области, в видимом виде . Метод scrollRectToVisible: анимированный: прокручивает указанный прямоугольник так, чтобы он был просто виден внутри прокрутки. Если анимированный параметр равен YES, прямоугольник прокручивается в окно с постоянным темпом. Как и в случае setContentOffset: анимированный :, если анимация отключена, делегату отправляется одно сообщение scrollViewDidScroll: . Если анимация включена, делегату отправляется серия сообщений scrollViewDidScroll: сообщения по мере продвижения анимации. В случае scrollRectToVisible: анимированный: отслеживание прокрутки и перетаскивание объектов также НЕТ.

Если анимация включена scrollRectToVisible: анимированные :, делегат получает scrollViewDidEndScrollingAnimation: сообщение, , обеспечивающее уведомление о том, что вид прокрутки прибыл в указанном месте и завершения анимации.

Я думаю, что это очень похоже на setContentOffset: анимированный и scrollRectToVisible: анимированный, может кто-нибудь дать некоторые намеки на них?

И scrollRectToVisible: анимированный: похож на scrollViewDidEndDecelerating: анимированный: тоже.

ответ

14

Короткий ответ:

setContentOffset: анимированный сохраняет zoomscale.

scrollRectToVisible: анимированный может изменить его.

+0

Спасибо, любые другие? – ThinkChris

+1

Если вы используете setContentOffset: анимированный: вы можете прокручивать вне contentSize. –

+0

@GustafRosenblad Это неправда, вы не можете прокручивать вне contentSize, вам нужно будет добавить содержимое. –

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