【发布时间】:2016-05-07 14:06:59
【问题描述】:
我正在尝试在我的应用上同时检测上下滑动。我有一个 SKScene,我在 func didMoveToView: view 添加手势识别器
我已经设置了委托:UIGestureRecognizerDelegate,并让以下函数全部返回 true。
gestureRecognizerShouldBegin: gestureRecognizer
gestureRecognizer: shouldRecognizeSimultaneouslyWithGestureRecognizer
gestureRecognizer: shouldReceiveTouch
当我用一根手指滑动时,我可以看到 shouldRecognizeSimultaneouslyWithGestureRecognizer 被触发并返回 true。附加到滑动的功能也可以正常工作。
但是当我尝试同时在两个方向上滑动时,不会触发相应的 func 并且不会触发 shouldRecognizeSimultaneouslyWithGestureRecognizer。
当我单独执行滑动时,滑动效果很好,但同时没有执行滑动时。
我在这里做错了什么?
编辑:
class GameControlller: SKScene, SKPhysicsContactDelegate, UIGestureRecognizerDelegate {}
添加滑动:
override func didMoveToView(view: SKView) {
print("did move to view")
let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(GameControlller.PaddleMoveUp(_:)))
swipeDown.direction = .Down
self.view!.addGestureRecognizer(swipeDown)
let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(GameControlller.PaddleMoveDown(_:)))
swipeUp.direction = .Up
self.view!.addGestureRecognizer(swipeUp)
swipeDown.delegate = self
swipeUp.delegate = self
}
UIGestureRecognizer 委托函数:
func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
print("Simultaneous gesture recognizer!")
return true
}
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
return true
}
【问题讨论】:
-
错误可能不在您向我们展示 atm 的代码中。请提供更多上下文(更多代码)。你一定是在别处犯了错误。
-
别忘了
import QuartzCore -
添加了 QuartzCore...没有什么不同
标签: ios swift uigesturerecognizer simultaneous