swift - 隐藏节点不显示带有名称的子节点

标签 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
            }
        }
    }
}

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

最佳答案

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

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

关于swift - 隐藏节点不显示带有名称的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37310221/

相关文章:

android - 在 Android 上以几个短时间间隔监听 GPS 更新时,GPS 是否使用以前的数据?

java - GoogleMap V2 不从用户当前位置开始

ios - SwiftUI Firestore 查询游标分页不起作用

ios - 如何从顶部淡入淡出到视觉效果 View 模糊 - SWIFT

ios - Swift append to array 在 32 位系统上给我 EXC_BAD_INSTRUCTION EXC_l386_INVOP

ios - 在 GameScene 上画一条简单的线

swift - 如何加载单例类属性?

ios - SpriteKit swift 3 中消失的按钮和标签

ios - 第一次加载应用程序时,MKMapview ios 不显示当前位置

ios - FCM + Swift 3 - 通知未出现