屏幕边缘手势识别器问题

Posted

技术标签:

【中文标题】屏幕边缘手势识别器问题【英文标题】:Screen Edge Gesture Recognizer issue 【发布时间】:2018-06-21 08:00:32 【问题描述】:

我遇到了 UIScreenEdgePanGestureRecognizer 的问题。我为滑动汉堡菜单的手势添加了 .left 边缘,但我在这个屏幕上有 UISlider 控件,它的左边缘绑定到屏幕的左边缘。 当我在 UISlider 控件上从左向右滑动时,屏幕不会更改其值,而是显示汉堡菜单。 如何在滑块区域部分禁用左边缘识别器,但在此屏幕的其他部分保持启用?

【问题讨论】:

【参考方案1】:

在您不希望识别器响应的重叠手势识别器情况下,我实现了“要求失败”。

leftEdgeRecognizer.require(toFail: sliderAreaRecognizer)

这将导致左侧边缘滑动失败或在滑块识别器处于活动状态时“被禁用”。

【讨论】:

【参考方案2】:

为您的UIScreenEdgePanGestureRecognizer 设置一个代表, 实现shouldRecognizeSimultaneouslyWithOtherGestureRecognizer功能 并返回false

【讨论】:

不幸的是,这对我不起作用,我尝试重新定义许多委托方法,但我所达到的只是边缘缓慢工作的滑块:很难抓住它来滑动 另一种选择是实现shouldRecognizeSimultaneouslyWith otherGestureRecognizer。这将需要您弄清楚菜单手势是否是第二个手势,而第二个手势是滑块手势。然后返回 false。 是的,你是对的,我实现了这个案例,但效果不佳。当滑块位于屏幕边缘时,滑块严重滑动。简单地说,我关闭了滑块区域的左边缘手势,但是当我从这个边缘滑块滑出时,滑得不好。我必须正确指向滑块以获得良好的工作姿势。在其他地方(当滑块从边缘移动时)效果很好。

以上是关于屏幕边缘手势识别器问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS:从 iPad 屏幕外开始滑动时,无法识别滑动手势

仅在滚动内容到达边缘时识别 UIScrollView 中的滑动手势

在 UIWebView 中向后/向前滑动手势?

基于FPGA的图像边缘检测系统设计(FPGA手势识别)

tvOS 手势识别器在滑出屏幕后停止工作

iOS检测到屏幕左边缘外的拖动