在Swift的Xcode 6 beta 3中加载带有png图像的UIImages,如下所示:
PipsImg = (UIImage(named: "Die-1"))
或
PipsImg = [(UIImage(named: "Die-1")),(UIImage(named: "Die-2"))]
从存储在Images.xcassets文件夹中的相关图像,我收到以下致命的运行时错误:
SimpleAnimation[680:60b] Unsupported pixel format in CSI
SimpleAnimation[680:60b] Unable to create unsliced image from csi bitmap data.
这似乎在测试版4中得到了解决,但有时会留下一些,因为有时这些回归
答案 0 :(得分:35)
这是由Xcode 6中的错误引起的(此时为beta 3)。它似乎只在您的构建目标是iOS 7.x
时才会出现要解决此问题:
1)从Images.xcassets容器中删除文件。
2)将图像直接放入"支持文件"夹。
注意:不需要添加" .png"代码中的扩展,使其成为一个干净的解决方法。
请为Apple创建一个RADAR(错误报告)。
答案 1 :(得分:23)
XCode 6.0.1仍然存在这个问题。 如果您将.jpg添加到Images.xcassets并尝试将应用程序安装到iOS 7设备。
修复它只需将.jpg转换为.png
答案 2 :(得分:17)
Apple工程师的回复:
问题是iOS 7应用程序无法在CAR文件中包含JPEG图像。 actool应该将JPEG作为松散图像复制到应用程序的文件夹中。要解决此问题,您应该将图像转换为PNG或将JPEG包含为资产目录之外的资源。
答案 3 :(得分:0)
我通过以下方式解决了这个问题:
答案 4 :(得分:0)
在Xcode中,我们现在可以对图像资源进行切片。如果添加切片,则资产目录中图像的相应json将调整信息大小。这可能看起来像这样的
"resizing" : {
"mode" : "3-part-vertical",
"center" : {
"mode" : "fill",
"height" : 6
},
"capInsets" : {
"top" : 16,
"bottom" : 6
}
}
iOS 7.0无法正确处理切片。因此,从json中删除切片信息可能有助于解决问题(在我的情况下,这是一个解决方案)。