Объединение LongPress с UIGesture Swipe в Swift 5 (Xcode 10.1) - PullRequest
0 голосов
/ 04 ноября 2019

Я видел, как другие люди задают подобные вопросы, но я не совсем понял ответы. Я новичок в дизайне iOS и относительно новичок в Swift, поэтому я прошу прощения за свое невежество. Моя цель - сделать так, чтобы пользователь проводил пальцем в указанном направлении, и чтобы программа повторяла определенное действие, пока пользователь не уберет палец с экрана. Из того, что я могу сказать, мне нужно реализовать функцию gestRecognizer.

Я думаю, что, вероятно, реализовал вещи странным образом:

В моем файле GameViewController.swift я реализовал следующее, так какотдельная функция в классе UIViewController.

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer)-> Bool {
    return true
} 

Я понимаю, что это означает, что любые два действия UIGestureRecognizer могут выполняться одновременно.

В моем файле GameScene.swift, в SKSceneкласс, у меня есть:

override func didMove(to view: SKView) {
    ...

    swipeRight =  UISwipeGestureRecognizer(target: self, action: #selector(swipeR))
    swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(swipeL))
    longPress = UILongPressGestureRecognizer(target: self, action: #selector(printLongPress))

    longPress.delegate = self as? UIGestureRecognizerDelegate
    swipeRight.delegate = self as? UIGestureRecognizerDelegate
    swipeLeft.delegate = self as? UIGestureRecognizerDelegate

    swipeRight.direction = .right
    swipeLeft.direction = .left

    view.addGestureRecognizer(swipeRight)
    view.addGestureRecognizer(swipeLeft)
    view.addGestureRecognizer(longPress)
}


@objc func swipeR() {
    print("Right")
}
@objc func swipeL() {
    print("Left")
}
@objc func printLongPress() {
    print("Long press")
}

В идеале в приведенном здесь примере кода, если вы проведете пальцем вправо и удерживаете экран, вы увидите «Проведите вправо», «Долгое нажатие», «Долгое нажатие». и т.д.

Есть идеи, что я здесь не так делаю?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...