UIScrollView 中的水平滑动

Posted

技术标签:

【中文标题】UIScrollView 中的水平滑动【英文标题】:Horizontal swipes in a UIScrollView 【发布时间】:2012-02-06 03:54:24 【问题描述】:

我希望滚动视图只是垂直滚动,并且我还尝试在滚动视图上捕获水平滑动。

我尝试继承 UIScrollView 并覆盖一些关于触摸事件的方法,但都失败了。

问题似乎是,当用户通过一些意外的垂直移动(即使只是一点点)水平滑动时,UIScrollView 滚动并且我的 touchesEnded 委托方法永远不会被调用。

【问题讨论】:

您能详细说明您是如何尝试捕捉滑动的吗? 【参考方案1】:

不要覆盖touchesBegan:withEvent: 和其他方法,而是使用UISwipeGestureRecognizer。这要简单得多。

“Gesture Recognizers” in the Event Handling Guide for iosUISwipeGestureRecognizer Class Reference

【讨论】:

感谢您的回答!但问题仍然存在。当用户通过一些意外的垂直移动(即使只是一点点)水平滑动时,不会调用手势选择器方法。 您的目标是什么版本的 iOS? iOS 4.0。顺便说一句,手势选择器方法仅在用户滑动而不触发垂直移动时被调用。 挖掘滚动视图的手势识别器以找到它的平移手势识别器并执行[panGestureRecognizer requireGestureRecognizerToFail:self.swipeGestureRecognizer]。在此处查找平移手势识别器的代码:***.com/a/3173290/77567

以上是关于UIScrollView 中的水平滑动的主要内容,如果未能解决你的问题,请参考以下文章

在启用水平页面的 UIScrollview 中滑动多个 UITableView

使用 UIScrollView 在多个图像之间水平滚动

防止 UIScrollView 中的 UISlider 触发滚动

阻止UIScrollView中的UISlider触发滚动

限制UIScrollView中的可滚动区域

UIScrollView 中的 UIScreenEdgePanGestureRecognizer