我正在构建一个带有复选框函数的列表,其中复选符号是空复选框的子级。在 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 的背景节点隐藏在后面。
关于swift - 隐藏节点不显示带有名称的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37310221/