如何告诉资产目录(.xcassets)为多个图像井使用相同的图像?

时间:2013-09-28 00:26:47

标签: ios xcode xcode5 xcasset

我们有几个Xcode应用程序项目,我们正在升级所有这些项目以使用最新的Xcode 5功能,包括资产目录(.xcassets)。

我们所有的default(启动)图片都已包含状态栏的间距,我们希望将这些图像用于iOS 5,6iOS 7启动图像。此外,我们想要在项目中包含同一图像的多个副本。

我们的一个项目被正确设置为对这两个图像集合使用相同的图像。然而,这是偶然设置的。

除了直接编辑Contents.json文件(如果需要,这是最后的解决方法),我们如何使用资产目录的Xcode GUI编辑器来完成这项工作?

我们已尝试过的内容

1)将图像拖放到不同的位置......只需将图像移动到另一个图像

2)将同一文件从Finder拖放到资产目录...创建图像的新副本

3)按下optionalt)拖放图像...创建图像的新副本

6 个答案:

答案 0 :(得分:8)

您可以右键单击.xcassets文件,然后选择“在Finder中显示”。转到“Image.launchimage”文件夹,在文本编辑器中打开Contents.json文件。在这里,您可以看到未分配的插槽不包含“文件名”。您可以手动添加。例如,更改以下内容:

{
    "orientation" : "landscape",
    "idiom" : "ipad",
    "extent" : "full-screen",
    "minimum-system-version" : "7.0",
    "scale" : "2x"
}

进入:

{
    "orientation" : "landscape",
    "idiom" : "ipad",
    "extent" : "full-screen",
    "minimum-system-version" : "7.0",
    "filename" : "Default-Landscape@2x~ipad.png",
    "scale" : "2x"
}

现在保存文件,瞧!

答案 1 :(得分:0)

我通过使用构建脚本为每个目标复制正确的xcassets文件来解决这个问题。详情here

答案 2 :(得分:0)

我想我找到了解决方案:只需将要用于iOS 6和7的默认图像拖到iOS 6存储桶中即可。你会收到关于没有iOS7图像的警告,但是这个版本适用于iOS7 simulato,iOS7 iPhone和iOS7 iPad。

答案 3 :(得分:0)

我通过删除旧的xcassets并使用不使用应用程序目录添加新的xcassets来解决这个问题

答案 4 :(得分:0)

就我而言,我正在使用可可豆荚。可可豆荚脚本Pods-resources.sh以某种方式引起了这个问题。从脚本中删除资产部分解决了这个问题。

确保清理项目并删除派生数据文件夹。

可以在此处找到要删除的部件:

https://stackoverflow.com/a/21309102/832111

答案 5 :(得分:0)

我升级到cocopods 0.37,问题解决了。如果你使用了cocopods那么它可能是它的错。