禁用UIScrollView惯性(scrollViewDidEndDecelerating)Swift

时间:2016-05-22 02:47:19

标签: ios swift uiscrollview swipe inertia

设置:我有一个横向效果很好的滚动视图以及一个UISwipeGestureRecognizer,当我向下滑动时会触发到另一个视图的segue。

问题:如果我正在水平滚动并且我开始向下滑动(禁用垂直滚动)当滚动减速时,向下滑动动作(segue)不会执行。它仅在滚动减速完成后才起作用。

enter image description here

有没有办法禁用滚动减速(又称惯性),以便可以立即检测到我的向下滑动手势?也许有一种解决方法可以强制首先检测UISwipeGestureRecognizer?

Swift中的解决方案非常受欢迎!

3 个答案:

答案 0 :(得分:1)

Swift 3

要禁用减速滚动,您可以尝试:

c(0.1,0.2)

或者您更改此值:

c(0.1,0.5)

关于您的gestureRecognizer干扰您可以调用此方法排除触摸:

id

答案 1 :(得分:1)

UIScrollView有一个pinchGestureRecognizer和一个panGestureRecognizer。如果你有一个UISwipeGestureRecognizer,这个动作最有可能被识别为UIPanGestureRecognizer
您可以添加依赖项来解决问题:

scrollView.panGestureRecognizer.requireGestureRecognizerToFail(swipeGesture)

答案 2 :(得分:0)

你看到了吗? Deactivate UIScrollView decelerating

答案

sdcard

转换为swift是

-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{  
[scrollView setContentOffset:scrollView.contentOffset animated:YES];   
}