Размах жест не распознается - PullRequest
0 голосов
/ 29 ноября 2018

Я впервые использую UI Gesture Recognizers .Я пытаюсь внедрить его в 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 ничего не ничего не делало, поэтому с жестами, борющимися за приоритет, проблем не возникает.

Почему это не распознает мои жесты?Я забыл некоторые важные вещи (например, делегат)?

1 Ответ

0 голосов
/ 29 ноября 2018

Я только что понял, что когда я настраивал свой вид, я настраивал управление камерой следующим образом:

gameView.allowsCameraControl = true // Camera control

, когда оно действительно должно быть:

gameView.allowsCameraControl = false // Camera control

Я предполагаю, что этопотому что камера переопределяет жесты на вид, и я совсем забыл об этом!Работает хорошо, как и ожидалось, и надеюсь, что это поможет любому в будущем, кто также совершил эту маленькую ошибку.

...