gpt4 book ai didi

ios - 快速拦截(或强制停止)长按手势识别器

转载 作者:行者123 更新时间:2023-11-30 13:41:29 26 4
gpt4 key购买 nike

我使用长按手势识别器来设置我自己的 wkwebview 链接操作表,但是直到我松开手指后操作表才会出现(我尝试了 recognizer.began 但它不起作用... )

那么,如何拦截长按识别器呢?我可以添加一个计时器来停止它吗?怎么办?

P.s.这是我的代码:

//long press to show the action sheet
longPressRecognizer.delegate = self
longPressRecognizer.addTarget(self, action: "onLongPress:")
self.webView.scrollView.addGestureRecognizer(longPressRecognizer)

func onLongPress(gestureRecognizer:UIGestureRecognizer){
longPressSwitch = true
}

最佳答案

使用 NSTimer 代替长按识别器。下面是一个快速实现示例 (Swift 2):

var sameTouch = false
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
_ = NSTimer.scheduledTimerWithTimeInterval(1.5, target: self, selector: "longPressed", userInfo: nil, repeats: false)
sameTouch = true
}

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
sameTouch = false
}

func longPressed() {
if(sameTouch) {
longPressSwitch = true
sameTouch = false
}
}

非常简单的东西;当“触摸开始”时,我们启动计时器,该计时器将运行 1.5 秒。我们说 _ = ... 是因为我们永远不会再引用该计时器,因此没有必要为其命名。我们还将变量 sameTouch 设置为 true。

如果touchesEnded,我们将sameTouch设置为false。这是因为这将向 longPressed() 表明触摸已提前释放。

longPressed() 中,我们将 longPressSwitch 设置为 true - 这是来自您的代码。 sameTouch = false 这行代码并不是 100% 必要的,但它说明了我眼中系统的封闭性。

希望,这有帮助!如果您有疑问,请告诉我!

关于ios - 快速拦截(或强制停止)长按手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35518706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com