SKSpriteNode无法在某些iOS 9模拟器中加载Images.xcassets中的图像

时间:2015-10-09 10:24:30

标签: xcode sprite-kit swift2 ios9 skspritenode

我最近正在使用SpriteKit进行游戏,并发现了一个有趣的问题。当我从Images.xcassets中保存的图像启动SKSpriteNode时,它在某些iOS 9模拟器中无法正常工作。我使用的代码是:

let tortoise = `SKSpriteNode`(imageNamed: "tortoise")

在模拟器中进行测试时,我发现虽然它在大多数iOS 8.4和iOS 9模拟器中都有效,但它在iPad 2(iOS 9)和iPhone 4s(iOS 9)中都不起作用。 {2}模拟器中未显示SKSpriteNodeSKSpriteNode大小为(0.0,0.0)。即使我使用相同的图片源手动设置其SKTexture,我发现SKTexture已加载良好(因为它报告了正确的尺寸),但SKSpriteNode无法显示图像。

有趣的是,当我在iPad 2(iOS 8.4)和iPhone 4s(iOS 8.4)模拟器中测试相同的上述代码时,它运行良好。所以我不得不直接在主包下导入一些iPhone 4s和iPad 2的图像(不在图像资产中),并使用下面的代码来解决这个问题:

if tortoise.size == CGSize(width: 0.0, height: 0.0) {
    print("Reload tortoise image for SKSpiteNode")
    tortoise = (isPad == true) ? SKSpriteNode(imageNamed: "tortoisePad.png") : SKSpriteNode(imageNamed: "tortoise@2x.png")
}

通过这种方式,可以在iPad 2(iOS 9)和iPhone 4s(iOS 9)模拟器中正确显示SKSpriteNode。由于我手头没有iPad 2或iPhone 4s设备,我无法在真机上测试它。我只是想知道这是一个模拟器错误还是旧设备(如iPad 2和iPhone 4s)的iOS 9更改?

0 个答案:

没有答案