滑动手势未被识别
Swipe gesture not being recognised
这是我第一次使用 UI 手势识别器。我正在尝试将其实现到 SceneKit
中,以控制相机(没有更好的自定义控件方法吗?)。
下面是我的视图控制器中的一瞥:
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
手势 没有 做任何事情,所以手势争夺优先级没有问题。
为什么这不能识别我的手势?我是否忘记了一些重要的事情(例如代表)?
我刚刚意识到,当我设置视图时,我是这样设置相机控件的:
gameView.allowsCameraControl = true // Camera control
真正应该是什么时候:
gameView.allowsCameraControl = false // Camera control
我假设这是因为相机覆盖了对视图的手势,我完全忘记了这一点!现在运行良好,希望对以后犯同样小错误的人有所帮助。
这是我第一次使用 UI 手势识别器。我正在尝试将其实现到 SceneKit
中,以控制相机(没有更好的自定义控件方法吗?)。
下面是我的视图控制器中的一瞥:
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
手势 没有 做任何事情,所以手势争夺优先级没有问题。
为什么这不能识别我的手势?我是否忘记了一些重要的事情(例如代表)?
我刚刚意识到,当我设置视图时,我是这样设置相机控件的:
gameView.allowsCameraControl = true // Camera control
真正应该是什么时候:
gameView.allowsCameraControl = false // Camera control
我假设这是因为相机覆盖了对视图的手势,我完全忘记了这一点!现在运行良好,希望对以后犯同样小错误的人有所帮助。