Для всех свитков, связанных с перетаскиванием, этого будет достаточно:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
_isScrolling = NO;
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (!decelerate) {
_isScrolling = NO;
}
}
Теперь, если ваша прокрутка вызвана программным setContentOffset / scrollRectVisible (с animated
= ДА или вы, очевидно, знаете, когда прокрутка закончена):
- (void)scrollViewDidEndScrollingAnimation {
_isScrolling = NO;
}
Если ваша прокрутка вызвана чем-то другим (например, открытием клавиатуры или закрытием клавиатуры), вам, вероятно, придется обнаружить событие с помощью взлома, поскольку scrollViewDidEndScrollingAnimation
также бесполезен.
Случай просмотра прокрутки PAGINATED :
Поскольку, я думаю, Apple применяет кривую ускорения, scrollViewDidEndDecelerating
вызывается для каждого перетаскивания, поэтому в этом случае нет необходимости использовать scrollViewDidEndDragging
.