0

我有一个滚动视图。典型的 tableView 单元。我在 viewDidScroll 上做了很多事情。

viewDidScroll 在 2 种情况下被调用。

  1. 用户滚动
  2. 有时用户已经停止滚动,但由于动量、弹跳等原因,滚动视图仍然滚动。

那么我怎么知道用户是否还在触摸滚动视图呢?

4

2 回答 2

3

UIScrollView有一个BOOL名为的属性tracking,即YES当滚动视图有触摸时,NO否则。在我的测试中,它被设置NO为一旦触摸结束,即使视图正在减速(并且仍然发送scrollViewDidScroll:给它的委托)。这似乎正是您所要求的。

在我的测试中,当触摸结束后视图正在减速时,该dragging属性似乎并没有变得可靠。NO

decelerating属性在我的测试中也不可靠。如果我在减速时触摸滚动视图,即使视图已停止滚动,它decelerating仍然存在。YES

于 2012-11-12T09:34:59.170 回答
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

于 2012-11-12T09:25:12.813 回答