我有一个滚动视图。典型的 tableView 单元。我在 viewDidScroll 上做了很多事情。
viewDidScroll 在 2 种情况下被调用。
- 用户滚动
- 有时用户已经停止滚动,但由于动量、弹跳等原因,滚动视图仍然滚动。
那么我怎么知道用户是否还在触摸滚动视图呢?
我有一个滚动视图。典型的 tableView 单元。我在 viewDidScroll 上做了很多事情。
viewDidScroll 在 2 种情况下被调用。
那么我怎么知道用户是否还在触摸滚动视图呢?
UIScrollView
有一个BOOL
名为的属性tracking
,即YES
当滚动视图有触摸时,NO
否则。在我的测试中,它被设置NO
为一旦触摸结束,即使视图正在减速(并且仍然发送scrollViewDidScroll:
给它的委托)。这似乎正是您所要求的。
在我的测试中,当触摸结束后视图正在减速时,该dragging
属性似乎并没有变得可靠。NO
该decelerating
属性在我的测试中也不可靠。如果我在减速时触摸滚动视图,即使视图已停止滚动,它decelerating
仍然存在。YES
scrollViewWillBeginDragging:
当用户开始拖动时调用委托,当用户离开他/她的手指时调用scrollViewDidEndDragging:willDecelerate:
& scrollViewWillEndDragging:withVelocity:targetContentOffset:
(iOS 5+ 没有启用分页)。
您可能还需要检查scrollViewWillBeginDecelerating:
和scrollViewDidEndDecelerating:
。