1. 添加的手势在同一个文件内时(ViewController或其他), 通过以下方法区分单击、双击事件
singleTapGesture.require(toFail: doubleTapGesture)
2. 添加的手势在不同文件内时,就需要公共的变量来记录
Common.swift
/// 记录是否为双击事件
let doubleTap: Bool = false
SingleTap.swift
// 单击事件的方法
@objc fileprivate func singleTap(tap: UITapGestureRecognizer) {
// 修改公共变量
doubleTap = false
// 单击手势延迟执行
self.perform(#selector(self.singleTap), with: nil, afterDelay: 0.2)
}
// 延迟执行方法
@objc fileprivate func singleTap() {
if doubleTap == false {
// 要执行的单击事件......
}
DoubleTap.swift
// 双击手势事件
@objc fileprivate func doubelTap(tap: UITapGestureRecognizer) {
// 修改公共变量:是双击手势
doubleTap = true
// 要执行的双击事件......
}