我曾经见过其他人问类似的问题,但我并不真正理解答案。我是iOS设计的新手,也是Swift的新手,所以为我的无知表示歉意。我的目标是让用户在给定的方向上滑动,并让程序重复执行某个操作,直到用户将手指从屏幕上抬起。据我所知,我需要实现gestureRecognizer函数。
我认为我可能以一种怪异的方式实现了事情:
在我的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")
}
理想地,在此处描述的示例代码中,如果要向右轻扫并按住屏幕,则会看到“向右轻扫”,“长按”,“长按”等。
有什么想法我在这里做错了吗?
谢谢!