【问题标题】:hidden nodes don't show up with childnodewithname隐藏节点不显示 childnodewithname
【发布时间】:2016-05-18 21:15:34
【问题描述】:

我正在构建一个带有复选框功能的列表,其中复选符号是空复选框的子项。在 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
            }
        }
    }
}

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

【问题讨论】:

    标签: swift sprite-kit location hidden touches


    【解决方案1】:

    如果您希望隐藏节点被 nodesAtPoint 拾取,您可以随时更改 hidden 的实现。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-18
      • 2011-08-18
      相关资源
      最近更新 更多