You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改手势识别器的点击等待时长?双击与三击识别逻辑适配

调整双击/三击手势的点击间隔等待时间

嘿,你已经搞定了双击和三击的逻辑区分,接下来调整等待时间其实很简单,只需要给你的UITapGestureRecognizer设置对应的时间属性就行,分两种情况看系统版本:

1. iOS 15 及以上版本

用maximumIntervalBetweenSuccessiveTaps属性,它控制连续两次点击之间的最大允许间隔(单位是秒)。比如你想把等待时间改成0.3秒,创建手势的时候这么写:

// 双击手势
let doubleTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleDoubleTap))
doubleTapRecognizer.numberOfTapsRequired = 2
doubleTapRecognizer.maximumIntervalBetweenSuccessiveTaps = 0.3 // 自定义间隔时间
view.addGestureRecognizer(doubleTapRecognizer)

// 三击手势
let tripleTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTripleTap))
tripleTapRecognizer.numberOfTapsRequired = 3
tripleTapRecognizer.maximumIntervalBetweenSuccessiveTaps = 0.3
view.addGestureRecognizer(tripleTapRecognizer)

2. iOS 15 以下版本

用旧的timeIntervalBetweenTaps属性,用法和上面一致:

// 双击手势
let doubleTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleDoubleTap))
doubleTapRecognizer.numberOfTapsRequired = 2
doubleTapRecognizer.timeIntervalBetweenTaps = 0.3
view.addGestureRecognizer(doubleTapRecognizer)

// 三击手势
let tripleTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTripleTap))
tripleTapRecognizer.numberOfTapsRequired = 3
tripleTapRecognizer.timeIntervalBetweenTaps = 0.3
view.addGestureRecognizer(tripleTapRecognizer)

额外说明

这个属性的作用是:如果两次点击的间隔超过你设置的时间,手势识别器就不会把它们当成连续的点击序列,自然也就不会触发双击/三击事件。你可以根据产品需求调整这个数值,比如想让用户有更充足的时间完成三击,就把时间设长一点(比如0.5秒)。

另外,你之前写的shouldBeRequiredToFailBy逻辑保持不变就好,它能确保三击触发时不会同时触发双击,和这个时间设置是互补的关系~

内容的提问来源于stack exchange,提问作者Micgal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:34:10