隐藏节点不显示 childnodewithname
hidden nodes don't show up with childnodewithname
我正在构建一个带有复选框功能的列表,其中复选符号是空复选框的子项。在 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()
方法解决问题的原因,但该框仍处于选中状态以进行后续触摸。有人对如何解决这个问题有建议吗?
如果您希望 nodesAtPoint
拾取隐藏节点,您可以随时更改 hidden.
的实现
您也可以使用 node.zPosition = -1
,假设您有一个背景节点 zPosition 0 隐藏在后面。
我正在构建一个带有复选框功能的列表,其中复选符号是空复选框的子项。在 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()
方法解决问题的原因,但该框仍处于选中状态以进行后续触摸。有人对如何解决这个问题有建议吗?
如果您希望 nodesAtPoint
拾取隐藏节点,您可以随时更改 hidden.
您也可以使用 node.zPosition = -1
,假设您有一个背景节点 zPosition 0 隐藏在后面。