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")
}
}