这是我第一次使用 UI手势识别器。我正在尝试将其实施到SceneKit
中,以控制摄像机(自定义控件没有更好的方法吗?)。
以下是我在View Controller中拥有的一瞥:
var gameView: SCNView!
/* ... */
override func viewDidLoad() {
super.viewDidLoad()
// Setup game
/* ... */
// Gestures
let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(swipeRightGesture))
swipeRight.direction = .right
gameView.addGestureRecognizer(swipeRight)
let pan = UIPanGestureRecognizer(target: self, action: #selector(panGesture))
gameView.addGestureRecognizer(pan)
}
@objc func swipeRightGesture() {
print("SWIPE!")
}
@objc func panGesture() {
print("PAN!")
}
我可以看到我的Pan
手势效果很好。但是,我的Swipe
手势似乎根本不起作用。删除Pan
手势不会没有做任何事情,因此手势优先级没有问题。
为什么这不能识别我的手势?我忘了一些重要的事情(例如代表)吗?
答案 0 :(得分:0)
我刚刚意识到,设置视图时,我将相机控件设置为:
gameView.allowsCameraControl = true // Camera control
真正应该是:
gameView.allowsCameraControl = false // Camera control
我认为这是因为相机正在覆盖视图的手势,而我完全忘记了!现在可以按预期运行,并且希望它对将来也会犯同样小错误的人有所帮助。