如何区分用户滑动和点击动作?

Posted

技术标签:

【中文标题】如何区分用户滑动和点击动作?【英文标题】:How to differentiate between user swipe and tap action? 【发布时间】:2013-04-09 08:20:11 【问题描述】:

我正在开发一个应用程序,其中我有一个包含 subView 的视图。 我想跟踪滑动和点击操作,例如单击。

仅当用户在我的子视图中触摸时才应跟踪操作。当用户点击我想执行一个操作时,当用户滑动我想执行另一个操作。

为了跟踪滑动,我实现了UIGestureRecognizer,它运行良好。但我不知道如何跟踪点击选项。请指导我如何实现这一目标。

主要的是,当我点击时,它应该只调用点击动作,反之亦然。

【问题讨论】:

【参考方案1】:

您可以使用UITapGestureRecognizer 进行点击手势。

"UITapGestureRecognizer 是 UIGestureRecognizer 的具体子类 寻找单个或多个水龙头。为了手势 识别,指定数量的手指必须点击视图a 指定的次数。”

此方法包括numberOfTapsRequired(“要识别的手势的点击次数。”)和numberOfTouchesRequired(“要识别的手势所需的点击次数”)属性,您可以准确设置您希望它如何响应用户操作。

在这种情况下,由于您只希望在点击一次时激活它,因此这两个属性的默认设置(都具有默认值 1)应该没问题。

【讨论】:

【参考方案2】:

获取信息的最佳位置是 Defining How Gesture Recognizers Interact of Event Handling Guide for ios

当视图附加了多个手势识别器时,您可以 想要改变竞争的手势识别器如何接收和 分析触摸事件。默认情况下,没有固定的顺序 手势识别器首先收到触摸,因此触摸 每次都可以以不同的顺序传递给手势识别器。 您可以将此默认行为覆盖为:

指定一个手势识别器应先于另一个手势识别器分析触摸。 允许两个手势识别器同时操作。 防止手势识别器分析触摸。

【讨论】:

以上是关于如何区分用户滑动和点击动作?的主要内容,如果未能解决你的问题,请参考以下文章

android listview上下滑动时为啥不触发点击事件

UIGesture 识别器,区分单击和双击。

鸿蒙学习笔记之滑动事件(常见动作)

UITableView 单手势行滑动动作

为啥 Asp.net MVC 不能区分具有不同参数的两个动作?

如何使用qt在mac中使标签窗口从顶部滑动?