确定UITouch是否在SKLabelNode框架内

时间:2017-05-18 00:32:10

标签: swift sprite-kit uitouch sklabelnode

我的目标是找出UITouch是否发生在SpriteKit标签节点中。该视图是SKView。我正在使用的代码(下面)的问题是触摸和矩形似乎在不同的坐标系中。

我可以使用简单的数学来纠正这个问题,但是有一种简单的方法可以解决这个问题吗?或者我还有另一种方法吗?

 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

    for t in touches {
        let position = t.location(in: view)

        //if inside startButton
        if (startButton?.frame.contains(position))! {
            debugPrint("yes")
        }
    }
 }

1 个答案:

答案 0 :(得分:2)

我假设您在场景中覆盖touchesBegan。如果是,请尝试使用let position = t.location(in: self),即将view替换为self。这样你就可以获得场景本身的位置,而不是视图中保持场景的位置。

希望有所帮助!