我需要在视图上实现两次点击并在同一视图上实现三次点击。如何检查是否应该为两个或三个水龙头调用处理程序。 根据我添加的一些文档
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -> Bool {
if gestureRecognizer == doubleTapRecognizer && otherGestureRecognizer == tripleTapRecognizer {
return false
}
return true
}
它似乎工作正常,但我需要非常快地点击三次,所以有时它是不可能的。 我该如何配置双击或三击?
使用以下配置创建 tripleTapRecognizer
和doubleTapRecognizer
private func setTripleTouchGestureRecognizer() -> UITapGestureRecognizer {
let gesture = UITapGestureRecognizer(target: self, action: #selector(tripleTapHandler(_:)))
gesture.numberOfTapsRequired = 3
gesture.delegate = self
return gesture
}
private func setDoubleTapGestureRecognizer() -> UITapGestureRecognizer {
let gesture = UITapGestureRecognizer(target: self, action: #selector(doubleTapHandler(_:)))
gesture.numberOfTapsRequired = 2
gesture.require(toFail: setTripleTouchGestureRecognizer())
gesture.delegate = self
return gesture
}
答案 0 :(得分:0)
这是系统级配置:
用户需要转到Settings->General->Accessibility->VoiceOver->Double-tap Timeout
配置分接头之间的超时间隔。 (是的,这适用于三重水龙头,我想因为它非常罕见,他们只是称之为"双击")
顺便说一下,你不应该在委托方法中创建新的TGR。相反,您可以使用现有的。