我正在使用scrollToRowAtIndexPath在UITableViews中进行编程滚动,它不会触发scrollViewDidEndDecelerating。检测滚动何时完成的好方法是什么?
我问,因为在我的代码中:
[tableView1 scrollToRowAtIndexPath:indexPath1 atScrollPosition:UITableViewScrollPositionBottom animated:YES];
[tableView2 scrollToRowAtIndexPath:indexPath2 atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
// Additional methods here
偶尔会在此滚动完成之前触发其他方法。我想使用比performSelector更简单的东西:afterDelay:。
答案 0 :(得分:9)
你试过scrollViewDidEndScrollingAnimation:
吗?它可能与您的其他委托方法具有相同的问题,但它值得一试。文档特别说明在setContentOffset:animated:
和scrollRectToVisible:animated:
结束时调用它,我可以用它预感scrollToRowAtIndexPath:atScrollPosition:
。
修改:已确认在scrollViewDidEndScrollingAnimation:
结束时调用了scrollToRowAtIndexPath:atScrollPosition:
。谢谢伊恩!