Первый результат в google для обнаружения страниц, поэтому мне пришлось ответить на это с лучшим решением, на мой взгляд.(даже если бы этот вопрос был задан два с половиной года назад.)
Я бы предпочел не звонить scrollViewDidScroll
только для отслеживания номера страницы.Это излишество для чего-то простого.Использование scrollViewDidEndDecelerating
работает и останавливается при смене страницы НО (и это большое но), если пользователь проведет по экрану в два раза быстрее, чем обычно, scrollViewDidEndDecelerating
будет вызываться только один раз.Вы можете легко перейти со страницы № 1 на страницу № 3, не обрабатывая страницу № 2.
Это полностью для меня решило:
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
scrollView.userInteractionEnabled = NO;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
//Run your code on the current page
scrollView.userInteractionEnabled = YES;
}
Таким образом, пользователь может провести только одну страницу навремя без риска, описанного выше.