ios - 在自定义 UIGestureRecognizer 中维护触摸之间的状态

标签 ios swift uigesturerecognizer

我正在实现一个自定义的UIGestureRecognizer,它可以执行一些操作,包括识别双击。我试图通过跟踪点击次数作为自定义手势类的局部变量来跟踪是否是双击。

当然,当用户启动双击时,他们必须在两次点击之间抬起手指,这会导致调用 touchesEnded。然而,这似乎总是也会触发 reset() 被调用,我已经实现了它来重置我的所有本地状态(正如我应该的那样,当识别器确实正确时状态被清除)结束)。因此,我无法跟踪每次调用 touchesBegan 时是否有先前的点击。

有没有合适的方法来实现这个?我想我只是好奇 UITapGestureRecognizer 如何在一个识别器 session 中实现多次点击。

最佳答案

FWIW,我最终使用 reset() 正常清除状态,但仍然跟踪最后一次触摸的 session (以 touchesBegan 开始并以 touchesEnded),以确定每个 session 开始时是否有先前的点击。

不确定这是否是使用 UITapGestureRecognizer 实现双击的方式,但如果有人知道的话,我很乐意听到其他解决方案。

关于ios - 在自定义 UIGestureRecognizer 中维护触摸之间的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50030459/

相关文章:

ios - 需要一个按钮周围的发光动画

ios - 如何以编程方式在按钮点击时隐藏 UIPickerview?

ios - 为 AVPlayer 更新时 UISlider 跳转

ios - GMSMarker 信息窗口未更新

cocoa - 如何将 NSNumber 与快速枚举值进行比较?

ios - 如何为IOS中的所有 View 实现一个通用的标签栏?

iOS 11 TableView 到导航栏下方的 UIView 奇数空间

objective-c - iOS编程: How to recognize if a user draws a circle or a cross?

objective-c - 顶部检测触摸的透明 UIView

objective-c - 在 Interface Builder 中使用 UITapGestureRecognizers 的问题