Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 检测UIScrollView中的突然滚动停止_Ios_Uiscrollview_Uiscrollviewdelegate - Fatal编程技术网

Ios 检测UIScrollView中的突然滚动停止

Ios 检测UIScrollView中的突然滚动停止,ios,uiscrollview,uiscrollviewdelegate,Ios,Uiscrollview,Uiscrollviewdelegate,我想知道如何使用UIScrollViewDelegate检测滚动视图何时突然停止移动,因为用户在从快速平移启动动量后触摸并握住屏幕 ScrollViewDiEndDecelling:方法仅在用户抬起手指时针对上述情况激发。但是,如果用户在滚动查看期间点击并按住,则此方法不会触发(直到他们抬起手指)。当用户触屏后滚动视图停止时,是否有任何方法可以截获此信息?那么,当用户开始滚动时,可能会出现一个标志,该标志会在ScrollViewDiEndDeceling中结束。这样,如果用户在清除标志之前再次开

我想知道如何使用
UIScrollViewDelegate
检测滚动视图何时突然停止移动,因为用户在从快速平移启动动量后触摸并握住屏幕


ScrollViewDiEndDecelling:
方法仅在用户抬起手指时针对上述情况激发。但是,如果用户在滚动查看期间点击并按住,则此方法不会触发(直到他们抬起手指)。当用户触屏后滚动视图停止时,是否有任何方法可以截获此信息?

那么,当用户开始滚动时,可能会出现一个标志,该标志会在
ScrollViewDiEndDeceling
中结束。这样,如果用户在清除标志之前再次开始滚动,您将知道他们在减速过程中触摸了标志。

您是否尝试过使用
ScrollViewWillBeginDraging
?或者(由于文档表明
ScrollViewwillBeginDraging
可能不会立即启动),您可以尝试使用
scrollViewDidScroll
并检查用户当前是否正在触摸scrollview

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

你不必实现你自己的

我们的朋友苹果已经为您提供了检测情况的方法

如需了解更多信息,请参考以下指南:

func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
    if decelerate {
      print("true if scrolling stops, keeping touch on the screen!")
    } else {
      print("false if scrolling stops, detaching touch on the screen")
    }
}