Spritekit 和 Swift 4 中的 UILongPressGestureRecognizer
UILongPressGestureRecognizer in Spritekit and Swift 4
我是一个完全的编程新手,我正在尝试学习如何使用 Spritekit 和 Swift 4.
制作一个简单的 iOS 游戏
到目前为止,我取得了一些小的成功,但我想为游戏添加一些进一步的细节,使其更具可玩性。
我在我的 GameScene 中添加了一些动作,这样当用户点击屏幕时,Sprite 就会执行一个动作。它工作正常,但现在我想在用户将手指放在屏幕上时 重复该操作 。
我已经阅读了一些关于它的帖子,但它们似乎都指向 Objective-C 或 Swift 的早期版本,它们在测试时会弹出一堆错误,而我无法得到它们为我工作。
我知道我应该使用 UILongPressGestureRecognizer
的某些实例,但 Apple's documentation 似乎对如何初始化它或在 action: Selector?
上声明什么感到困惑
据我了解,在我的 viewDidLoad
中,我必须包含如下内容:
let longTapRecognizer = UILongPressGestureRecognizer(target: self, action: "handleLongPress:")
self.addGestureRecognizer(longTapRecognizer)
然后编写一个处理动作的函数(我不确定是否也在 viewDidLoad
中):
func handleLongPress(recognizer: UIGestureRecognizer) {
if recognizer.state == .began {
print("Long press")
}
}
这听起来很简单,但我似乎无法理解 action:
应该如何声明或如何解决这个问题。
任何指导将不胜感激!
swift 中操作的语法是 #selector(methodName(params:))
(见https://developer.apple.com/documentation/swift/using_objective_c_runtime_features_in_swift)
你的手势识别器应该这样写:
let longTapRecognizer = UILongPressGestureRecognizer(
target: self,
action: #selector(handleLongPress(recognizer:)))
我是一个完全的编程新手,我正在尝试学习如何使用 Spritekit 和 Swift 4.
制作一个简单的 iOS 游戏到目前为止,我取得了一些小的成功,但我想为游戏添加一些进一步的细节,使其更具可玩性。
我在我的 GameScene 中添加了一些动作,这样当用户点击屏幕时,Sprite 就会执行一个动作。它工作正常,但现在我想在用户将手指放在屏幕上时 重复该操作 。
我已经阅读了一些关于它的帖子,但它们似乎都指向 Objective-C 或 Swift 的早期版本,它们在测试时会弹出一堆错误,而我无法得到它们为我工作。
我知道我应该使用 UILongPressGestureRecognizer
的某些实例,但 Apple's documentation 似乎对如何初始化它或在 action: Selector?
据我了解,在我的 viewDidLoad
中,我必须包含如下内容:
let longTapRecognizer = UILongPressGestureRecognizer(target: self, action: "handleLongPress:")
self.addGestureRecognizer(longTapRecognizer)
然后编写一个处理动作的函数(我不确定是否也在 viewDidLoad
中):
func handleLongPress(recognizer: UIGestureRecognizer) {
if recognizer.state == .began {
print("Long press")
}
}
这听起来很简单,但我似乎无法理解 action:
应该如何声明或如何解决这个问题。
任何指导将不胜感激!
swift 中操作的语法是 #selector(methodName(params:))
(见https://developer.apple.com/documentation/swift/using_objective_c_runtime_features_in_swift)
你的手势识别器应该这样写:
let longTapRecognizer = UILongPressGestureRecognizer(
target: self,
action: #selector(handleLongPress(recognizer:)))