gpt4 book ai didi

swift - UILongPressGestureRecognizer 和 UIScreenEdgePanGestureRecognizer

转载 作者:行者123 更新时间:2023-11-30 13:45:31 24 4
gpt4 key购买 nike

我正在使用 UIScreenEdgePanGestureRecognizer 来更改 View ,并且在其中一个 View 中,我可以使用 UILongPressGestureRecognizer (最短持续时间为 0)在 View 中移动一行 table 。问题是,这个按下手势位于屏幕边缘,因此我必须配置代理才能使其正常工作。

按下手势的委托(delegate)已设置:

override func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOfGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return otherGestureRecognizer is UIScreenEdgePanGestureRecognizer
}

这在模拟器中工作得很好(因为房屋油漆工更准确),但在设备本身上它不太可靠。我可以毫无问题地更改 View ,但移动行仍然有点棘手。

所以我把它改为:

override func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return gestureRecognizer is UILongPressGestureRecognizer && otherGestureRecognizer is UIScreenEdgePanGestureRecognizer
}

现在两个都工作正常,但显然两个手势同时工作,这是我不希望的。我尝试设置一个条件,如果平移手势的 x 轴速度大于 0,则按下手势失败,但此时按下手势已经开始。

最佳答案

您可以做的一件事是向每个手势识别器添加一个标签并执行以下操作:

func doSomething(sender: UIGestureRecognizer) {
if sender.tag == 1 {
// do this
} else {
// do that
}
}

关于swift - UILongPressGestureRecognizer 和 UIScreenEdgePanGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34986738/

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