如此处的要求:Pan gesture interferes with UISlider和Gesture problem: UISwipeGestureRecognizer + UISlider,我无法让UISlider以平移手势工作,因为在导航控制器中,我有一个具有“后退”按钮功能的类。
答案提到我应该像这样在我的班级中添加一个委托
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
if let view = touch.view, view == slider {
return false
}
return true
}
但是,此方法永远不会被调用。我已经尝试了15种方法来设置此类的委托,但老实说,我不知道在委托上设置什么。
let myScreenEdgePanGestureRecognizer = UIScreenEdgePanGestureRecognizer(target: self, action:nil)
myScreenEdgePanGestureRecognizer.delegate = self
没有任何效果。有人可以清楚地解释我如何解决此问题。我已经尝试了谷歌的前2页的每种方法。谢谢。
答案 0 :(得分:0)
如果您更准确地看到this代码,则代码会将类作为UISlider而不是UISlider的对象进行检查。
所以必须迅速写成这样
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
}
我没有运行并检查我的代码,如果需要进行任何编辑,则需要做,如果需要任何帮助,请添加注释。
编辑
对于UIScreenEdgePanGestureRecognizer
,请查看此帖子:
https://www.hackingwithswift.com/example-code/uikit/how-to-detect-edge-swipes
答案 1 :(得分:0)
尝试声明边
在Swift中,它看起来像
print(create_random())