UIScrollView scrollRectToVisible: animated: есть ли способ, которым метод может быть вызван, когда заканчивается анимация - PullRequest
10 голосов
/ 04 февраля 2012

Есть ли способ узнать, когда анимация закончилась и просмотр uiscroll остановился.

Ответы [ 4 ]

21 голосов
/ 29 августа 2012

Да, используйте scrollViewDidEndScrollingAnimation

13 голосов
/ 22 октября 2015

Я делаю это так, потому что иногда использование делегата не практично для меня, например, если я делаю это в переходе UIViewController:

[UIView animateWithDuration:0.3 animations:^{
    [scrollView setContentOffset:CGPointMake(0, -scrollView.contentInset.top) animated:NO];
} completion:^(BOOL finished) {
    // This is called when it's complete
}];
4 голосов
/ 19 марта 2013

Реализация UIScrollViewDelegate делегирование методов для вашего UIScrollView следующим образом:

Используйте scrollViewDidEndScrollingAnimation:, чтобы определить, когда анимация прокрутки завершается, когда вы инициировали прокрутку, вызывая setContentOffset:animated: илиscrollRectToVisible:animated: методов (с анимированным: ДА).

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

0 голосов
/ 04 февраля 2012

scrollViewDidEndDecelerating: Метод делегата UIScrollView вызывается, когда scrollView полностью останавливается.

...