如何知道用户仍在触摸UIScrollView中的屏幕?

时间:2012-11-12 09:15:19

标签: objective-c xcode uiscrollview

我有一个scrollView。典型的tableView Cell。我在viewDidScroll上做了很多事。

在2个案例中调用viewDidScroll。

  1. 用户滚动
  2. 有时用户已停止滚动但滚动视图仍然会因动量,弹跳等而滚动。
  3. 那么如何知道用户是否仍在触摸scrollView?

2 个答案:

答案 0 :(得分:3)

UIScrollView的{​​{3}}为YES,滚动视图触摸时为NO,否则为NO。在我的测试中,一旦触摸结束,它就会设置为scrollViewDidScroll:,即使视图正在减速(并且仍然向其委托发送NO)。这看起来就像你要求的那样。

在我的测试中,BOOL property named tracking在触摸结束后视图减速时似乎没有可靠decelerating

dragging property在我的测试中也不可靠。如果我在减速时触摸滚动视图,即使视图已停止滚动,YES仍为{{1}}。

答案 1 :(得分:2)

当用户开始拖动时,会调用代理人scrollViewWillBeginDragging:scrollViewDidEndDragging:willDecelerate:&当用户左手伸出时,会调用scrollViewWillEndDragging:withVelocity:targetContentOffset:(未启用分页的iOS 5+)。

您可能还想查看scrollViewWillBeginDecelerating:scrollViewDidEndDecelerating:

参考:http://developer.apple.com/library/ios/#documentation/uikit/reference/uiscrollviewdelegate_protocol/Reference/UIScrollViewDelegate.html