Swift UITapGestureRecognizer 慢

Posted

技术标签:

【中文标题】Swift UITapGestureRecognizer 慢【英文标题】:Swift UITapGestureRecognizer Slow 【发布时间】:2015-12-07 14:22:17 【问题描述】:

我在使用 UITapGestureRecognizer 时遇到了延迟,我知道这是由于:-

singleTap.requireGestureRecognizerToFail(doubleTap)

但这是必需的,因为单击与双击同时被调用。有没有其他方法可以解决这个问题?

let singleTap:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("singleTap:"))
singleTap.numberOfTapsRequired = 1
singleTap.requireGestureRecognizerToFail(doubleTap)
view.addGestureRecognizer(singleTap)

【问题讨论】:

【参考方案1】:

如果您要求在检测到单击之前双击失败,那么您绝对无法解决这个问题。

您能否通过要求在双击识别之前单击失败来解决此问题?

doubleTap.requireGestureRecognizerToFail(singleTap)

这应该意味着只有在未检测到单击时才会触发双击,本质上是优先考虑单击

【讨论】:

是的,它的晚餐很烦人,因为我需要单击以步行到该位置,并双击以运行到该位置。我已经尝试消除失败,它只会让我的角色出现故障。将失败添加到 doubleTap 使我遗憾地无法使用 doubleTap :( 我非常感谢您的帮助 Liam,谢谢! 啊,是的,对不起,这是有道理的!不幸的是,它是手势识别系统的设计,所以除了以不同的方式使用手势来实现您想要的之外,这里没有什么可以做的?也许玩弄使用不同类型的手势或者轻弹/滑动来运行?祝你好运! 另外,来自苹果文档:“如果您希望这两个操作互斥,您的单击识别器必须要求双击识别器失败。但是,您的单击操作会落后一点用户的输入,因为单击识别器会延迟,直到双击识别器失败。” (通过,developer.apple.com/library/ios/documentation/EventHandling/…)。它有点解释你的情况以及它发生的原因:)

以上是关于Swift UITapGestureRecognizer 慢的主要内容,如果未能解决你的问题,请参考以下文章

swift [Swift Notes]在学习Swift #Swift的同时收集笔记

Swift 反射

Swift入门系列--Swift官方文档(2.2)--中文翻译--About Swift 关于Swift

swift 示例BS swift.swift

swift swift_bug.swift

ios 整理(一)swift和oc的区别