Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 7.2、iOS 8.X、SpriteKit、Sprite无法识别任何触摸_Xcode_Swift_Sprite Kit_Touch_Ios Simulator - Fatal编程技术网

Xcode 7.2、iOS 8.X、SpriteKit、Sprite无法识别任何触摸

Xcode 7.2、iOS 8.X、SpriteKit、Sprite无法识别任何触摸,xcode,swift,sprite-kit,touch,ios-simulator,Xcode,Swift,Sprite Kit,Touch,Ios Simulator,我发展了: Swift 2.1.1(当前版本)和SpriteKit中的游戏 我运行的是Xcode 7.2 OS X 10.11.2(EL Capitan) 游戏项目设置“部署目标”设置为8.0 在真正的iPhone6设备和任何在iOS9.x上运行的模拟器上,一切都正常 但我需要在iOS 8.x上测试它,我只有这个版本的模拟器。游戏开始正确-一切看起来都很好,但我无法点击任何地方。无法识别单击/触摸。日志或Xcode中没有错误。我不知道怎么了,模拟器还是我的游戏 有人有类似的问题吗?谢谢你的建

我发展了:

  • Swift 2.1.1(当前版本)和SpriteKit中的游戏
  • 我运行的是Xcode 7.2
  • OS X 10.11.2(EL Capitan)
  • 游戏项目设置“部署目标”设置为8.0
在真正的iPhone6设备和任何在iOS9.x上运行的模拟器上,一切都正常

但我需要在iOS 8.x上测试它,我只有这个版本的模拟器。游戏开始正确-一切看起来都很好,但我无法点击任何地方。无法识别单击/触摸。日志或Xcode中没有错误。我不知道怎么了,模拟器还是我的游戏

有人有类似的问题吗?谢谢你的建议

编辑: 经过一些研究,我发现iOS8有一个bug:一个属性hidden=true的(全屏)精灵在我的可触摸精灵按钮上。此全屏幕精灵“吸收”所有触摸。即使它是隐藏的。这个错误在iOS 9中已修复


有什么办法吗?

我的解决方法:不仅要隐藏,还要从父精灵中删除。 我所有的精灵都是MySpriteNode的后代。在该类中,我实现了函数setVisible(),实现:

func setVisible(visible:Bool, _ newParent:SKNode?)
{
    // hide sprite
    if !visible
    {
        self.hidden = true
        self.removeFromParent()
    }

    // show sprite
    else
    {
        self.hidden = false
        if newParent != nil && self.parent == nil
        {
            newParent!.addChild(self)
        }
        else
        {
            // Sprite is visible (with old parent)
        }
    }
}
如果我想隐藏精灵:

myButton.setVisible(false, nil)
如果我想展示sprite,我必须认识一位家长:

myButton.setVisible(true, self)
现在,触摸被成功识别

我发现了同样的问题:但没有任何简单的修复