如何区分用户滑动和点击动作?
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上下滑动时为啥不触发点击事件