如何更改在手势识别器中等待下一次点击的时间

时间:2018-03-22 20:47:44

标签: ios swift uigesturerecognizer

我需要在视图上实现两次点击并在同一视图上实现三次点击。如何检查是否应该为两个或三个水龙头调用处理程序。 根据我添加的一些文档

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    if gestureRecognizer == doubleTapRecognizer && otherGestureRecognizer == tripleTapRecognizer {
        return false
    }
    return true
}

它似乎工作正常,但我需要非常快地点击三次,所以有时它是不可能的。 我该如何配置双击或三击?

使用以下配置

创建

tripleTapRecognizerdoubleTapRecognizer

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
}

1 个答案:

答案 0 :(得分:0)

这是系统级配置:
用户需要转到Settings->General->Accessibility->VoiceOver->Double-tap Timeout配置分接头之间的超时间隔。 (是的,这适用于三重水龙头,我想因为它非常罕见,他们只是称之为"双击")

顺便说一下,你不应该在委托方法中创建新的TGR。相反,您可以使用现有的。