Я видел, как другие люди задают подобные вопросы, но я не совсем понял ответы. Я новичок в дизайне 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")
}
В идеале в приведенном здесь примере кода, если вы проведете пальцем вправо и удерживаете экран, вы увидите «Проведите вправо», «Долгое нажатие», «Долгое нажатие». и т.д.
Есть идеи, что я здесь не так делаю?
Заранее спасибо!