隐藏节点不会显示childnodewithname

时间:2016-05-18 21:15:35

标签: swift sprite-kit location hidden touches

我正在构建一个带有复选框功能的列表,其中复选符号是空复选框的子项。在touchesBegan:中,复选框应该从隐藏到隐藏,然后返回,每次触摸复选框。代码如下所示:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    if let touch = touches.first {
        location = touch.locationInNode(self)
        for node in self.nodesAtPoint(location) {
            if node.childNodeWithName("checkSymbol")?.hidden == true {
                node.childNodeWithName("checkSymbol")?.hidden = false
            } else if childNodeWithName("checkSymbol")?.hidden == false {
                node.childNodeWithName("checkSymbol")?.hidden = true
            }
        }
    }
}

问题是.nodesAtPoint()方法隐藏了childNode(checkSymbol节点)。这就是我尝试使用上述.childNodeWithName()方法解决问题的原因,但仍会检查该框是否有后续触摸。有没有人建议如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果您希望nodesAtPoint选择隐藏节点,您可以随时更改隐藏的实施。

您也可以使用node.zPosition = -1,假设您有一个 zPosition 0 的背景节点隐藏在后面。