gpt4 book ai didi

swift - UISlider 和平移手势识别器不能混合使用

转载 作者:行者123 更新时间:2023-11-30 10:59:07 25 4
gpt4 key购买 nike

正如此处所问:Pan gesture interferes with UISliderGesture problem: UISwipeGestureRecognizer + UISlider我无法让 UISlider 使用平移手势,在我的导航 Controller 中,我有一个具有“后退”按钮功能的类。

答案提到我应该向我的类(class)添加一个委托(delegate)

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
if let view = touch.view, view == slider {
return false
}
return true
}

但是,这个方法永远不会被调用。我已经尝试了大约 15 种方法来为此类设置委托(delegate),但老实说我不知道​​在委托(delegate)中设置什么。

let myScreenEdgePanGestureRecognizer = UIScreenEdgePanGestureRecognizer(target: self, action:nil)
myScreenEdgePanGestureRecognizer.delegate = self

没有任何效果。有人可以清楚地解释我如何解决这个问题吗?我已经尝试了谷歌前两页的所有方法。谢谢。

最佳答案

如果您看到 this更准确地说,代码将类检查为 UISlider 而不是 UISlider 的对象。

所以在 swift 中你必须这样写

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
let view = touch.view
if view is UISlider { // check class as a UISlider
return false
}
return true
}

我没有运行并检查我的代码,如果需要任何编辑,请执行,如果您需要任何帮助,请添加评论。

Edit

对于 UIScreenEdgePanGestureRecognizer,请查看此帖子: https://www.hackingwithswift.com/example-code/uikit/how-to-detect-edge-swipes

关于swift - UISlider 和平移手势识别器不能混合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53607726/

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