-1

我正在尝试将UIGestureRecognizer整合到我的快速操场中,以便无论我在操场上点什么,我的精灵都会进入这一点。我已经尝试了一切!观看无数YouTube视频,并进行堆栈溢出寻找答案,但每个人都开始创建一个名为view的类,它是一个UIView,并且在他们的代码中他们一直提到“self”。我改为创建了一个名为“view”的变量,它是一个SKView。我尝试获取部分代码,将其放入我的代码中,然后更改它,但它不起作用。这是迄今为止我所做的工作。Swift Playgrounds中的UIGestureRecognizer

view.addGestureRecognizer(UIGestureRecognizer(target: view, action: #selector(handleTap(sender:)))) 

func handleTap(sender: UITapGestureRecognizer) { 
     player.position = sender.location(in: view) 
} 

我的操场总是告诉我,我使用的是未解决的标识符“handleTap(发件人:)”

回答

0

我认为你需要添加@objc马克在函数声明的前面,所以那handleTap将可见#selector

@objc func handleTap(sender: UITapGestureRecognizer) { 
    player.position = sender.location(in: view) 
} 
+0

这不工作,因为我的项目是不是在一个类 – Iturfly

0

func handleTap必须从你的view类型调用。

请尽量添加它的SKView扩展中:

extension SKView { 
     func handleTap(sender: UITapGestureRecognizer) { 
       player.position = sender.location(in: view) 
     } 
    } 
相关问题