2012-07-01 28 views
2

我想知道如何使用UIScrollViewDelegate来检测滚动视图何时突然停止移动,因为用户在从快速摇摄开始动量后触摸并保持屏幕。检测UIScrollView中的突然滚动停止

scrollViewDidEndDecelerating:方法仅在用户举起手指时触发上述情况。但是,如果用户在滚动视图动量期间轻击并保持,则此方法不会触发(直到他们抬起手指)。当滚动视图在用户触碰停下来时,有没有办法拦截?

回答

1

那么,你可以有一个标志,当用户开始滚动,其结束于scrollViewDidEndDecelerating。这样,如果用户在标志清除之前再次开始滚动,您将知道他们在减速期间触摸了它。

4

您是否尝试过使用scrollViewWillBeginDragging?或者(由于文档指示scrollViewWillBeginDragging可能不会立即触发),您可以尝试使用scrollViewDidScroll并检查用户是否正在触摸滚动视图...

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if(scrollView.isTracking){ 
     //do something 
    } 
}