Обнаружение конца программной прокрутки UIScrollView - PullRequest
4 голосов
/ 02 декабря 2009

Я делаю программную прокрутку в UITableViews с scrollToRowAtIndexPath, которая не вызывает scrollViewDidEndDecelerating. Какой хороший способ определить, когда прокрутка завершена?

Я спрашиваю, потому что в моем коде:

[tableView1 scrollToRowAtIndexPath:indexPath1 atScrollPosition:UITableViewScrollPositionBottom animated:YES];
[tableView2 scrollToRowAtIndexPath:indexPath2 atScrollPosition:UITableViewScrollPositionMiddle animated:YES];

// Additional methods here

иногда более поздние дополнительные методы срабатывают до завершения этой прокрутки. Я хотел бы использовать что-то более надежное, чем executeSelector: afterDelay:.

1 Ответ

9 голосов
/ 02 декабря 2009

Вы пробовали scrollViewDidEndScrollingAnimation:? У него может быть та же проблема, что и у другого метода делегата, но стоит попробовать. В документах конкретно говорится, что он вызывается в конце setContentOffset:animated: и scrollRectToVisible:animated:, что, как я догадывался, может быть использовано для реализации scrollToRowAtIndexPath:atScrollPosition:.

Редактировать: Подтверждено, что scrollViewDidEndScrollingAnimation: вызывается в конце scrollToRowAtIndexPath:atScrollPosition:. Спасибо, Ян!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...