在Xcode 6下运行iOS7项目-图像资源无法显示

11

我试图在Xcode6上的iOS7设备上运行一个iOS7项目。起初一切都很好,但后来我注意到所有位于Images.xcassets中的图像在运行时都没有显示出来。

我可以在Design模式(Storyboard)中正确地看到它们,并且如果我在模拟器中运行应用程序,我也可以看到它们。

有人有什么想法如何解决这个问题吗?谢谢!

注意:该项目在Xcode5.x上运行良好,因此不是通常的罪魁祸首(图像名称大小写不匹配)。

附加说明:我刚刚尝试了另一个iOS7项目:同样的问题...

附加说明:我尝试在Xcode下创建一个全新的项目并使用图像资源...图像出现了。


有类似经验的人吗?... - Jean Le Moignan
1
是的,在Xcode 6中iOS 7项目可以正常加载,并且iOS 8模拟器可以正确显示我的图片。但是在我的设备上(运行iOS 7.1),图片无法显示! - KBog
@oKBo 谢谢确认我不是一个人。我开始感到偏执了 :) - Jean Le Moignan
我注意到当你将新图像拖到images.xcassets时,它不再显示1x 2x,而只显示通用(图像的1个插槽)。我在Xcode 6中创建了一个新项目,将部署目标设置为7.1,并将一个新的.PNG图像拖入Images.xcassets,然后在默认/现有的storyboard VC上创建了一个按钮,得到了完全相同的结果!(模拟器正常工作,设备不显示图像) - KBog
5个回答

13

我在Xcode 6 Beta版本发布说明书中发现了以下内容:

若最低支持的iOS版本为7或OS X版本为10.9,则项目中的资源目录中的图片将在iOS 8和OS X 10.10上运行时可用,但在iOS 7和OS X 10.9上不可用.(17029658)


感谢您提供这个信息,oKBo。现在我们需要等待一段时间才能将iOS7项目转换为Swift。 - Jean Le Moignan

4

我曾经遇到过同样的问题,后来发现如果将我的图片从Images.xcassets文件夹移动到“Supporting Files”文件夹中,这些图片就可以在iOS7系统下显示出来。希望这个方法对你有帮助。


谢谢回复。我已经尝试过了(并且多次清理/关闭/重新打开所有内容,但是无济于事:( 除了移动Images.xcassets之外,您还做了什么其他的事情吗?有没有什么无关紧要但可能是关键的东西?再见。 - Jean Le Moignan
2
有趣的是:应用程序图标和启动图像能够正常运行...但其他图像都不能正常工作... - Jean Le Moignan
1
是的,我也遇到同样的问题了。这是个漏洞。 - xpepermint
1
你是否在图像名称中包含了图像的扩展名? - cmarenco
1
尝试包含图像的扩展名,您可以创建一个简单的应用程序来测试它,这就是我所做的,而且它运行良好。 - cmarenco
显示剩余3条评论

4

我突然在图像资源中添加了jpg图像。当以png格式重新保存时,一切正常。


对我来说也是一样。将jpg替换为png解决了问题。 - codeman

2

我刚刚阅读了关于Xcode 6 beta 2的消息:问题将会得到解决。

在我写作的同时正在下载 :)


发生了什么?我正在使用Xcode 6 b2,但问题仍然存在。 - Laurent

2

发现很好的技巧@o KB o!当我想从资源包(asset bundles)中切换并直接在我的项目中使用图片时,我也发现很难去除我的项目中的资源包。

以下是我的完整解决方案:

  1. 将每个图像从你的.xcassets图像 bundle复制到新目录(我们称之为Images/)。下面提供一个脚本使这一步骤更容易实现。
  2. 删除你的.xcassets bundle。(令人惊讶的是,仅仅从项目中删除它是不够的。在我的测试中,如果.xcassets bundle与Xcode项目或相关源文件处于同一目录中,它会被复制进来。或者你也可以移除.xcassets扩展名)
  3. Images/中的所有图像添加到你的Xcode项目中
  4. 清除 (cmd + shift + k)
  5. 从目标设备或模拟器中删除该应用程序
  6. 安装和运行

为了使第1步不那么繁琐,我编写了一个脚本,可以将图像从.xcassets bundle中复制到你选择的目录中:https://github.com/johnboiles/xcasset_exporter

mkdir Images
./xcasset_exporter.py MyProject/Images.xcassets Images

我可以确认这对我有效。在iPad mini retina 7.1.2 (11D257)和Xcode版本6.0(6A215l)上进行了测试。 - Albin Stigo
嘿,这看起来很酷。我(貌似)随机地遇到了错误“...第29行,在export_asset_bundle中,如果image['scale'] == '2x':KeyError:'scale'”。你有什么想法,我该如何解决? - LinusGeffarth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接