检测程序化UIScrollView滚动结束
问题描述:
我正在用scrollToRowAtIndexPath进行UITableViews的编程滚动,它不会触发scrollViewDidEndDecelerating。什么是检测滚动何时完成的好方法?检测程序化UIScrollView滚动结束
我问,因为在我的代码:
[tableView1 scrollToRowAtIndexPath:indexPath1 atScrollPosition:UITableViewScrollPositionBottom animated:YES];
[tableView2 scrollToRowAtIndexPath:indexPath2 atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
// Additional methods here
偶尔出现这种滚动之前,之后,其他方法大火已完成。我想使用比performSelector:afterDelay:更傻的东西。
答
你试过scrollViewDidEndScrollingAnimation:
?它可能与您的其他代表方法有相同的问题,但值得一试。该文档具体说它叫setContentOffset:animated:
和scrollRectToVisible:animated:
的末尾,我有一个预感可能会被用来实现scrollToRowAtIndexPath:atScrollPosition:
。
编辑:已确认scrollViewDidEndScrollingAnimation:
在scrollToRowAtIndexPath:atScrollPosition:
的末尾被调用。谢谢伊恩!
呵呵,我在文档中错过了这个方法。我可以确认它在scrollToRowAtIndexPath的末尾调用:(大部分时间?! - UIScrollViews对我来说似乎是越野车)并且是我正在寻找的。谢谢。 – Ian 2009-12-02 19:38:41
对我来说,它经常被调用。我在一个单元格中有一个textField,如果它的焦点被立即调用,然后在动画之后再次调用......糟糕。 – 2015-08-25 22:12:33