在Xcode 7没有视网膜4选项,那么我如何设置资产的全屏图像,让他们在4s / 5s和iPhone 6中正确显示?

在Xcode 7这些是没有视网膜4选项,据此,苹果有意删除它。 我没有编辑Contents.json来取回它,但效果是不一样的! 我记得在XCode6 / pre-iOS9 iPhone 6将使用视网膜4图片,所以我只需要为iPhone 4 / 4s设置一个全屏2倍图片,一个iPhone 5 / 5s和6全屏Retina 4。

我认为使用iPhone 6 Retina4真的有道理,而不是2倍! 因为1334/750约为1.778,接近1136/640 = 1.775,而960/640 = 1.5。 我的640 * 1136图片在iPhone 6上正确显示,640 * 960图片失真。

但随着Xcode 7,即使我得到了视网膜4选项,iPhone 6仍然使用2倍(640 * 960)图片,而不是视网膜4图片(iPhone 5 / 5s使用视网膜4,现在正确显示)。 我试图将iPhone的设备types更改为Universal。

所以我的问题是, 如果苹果删除Retina4的目的,那么我如何在XASET中设置全屏图像,使他们的iPhone 4/5/6的工作 ? 我只是在谈论全屏图像。 我理解使用2x的非全屏图像是有意义的。

顺便说一句,我不是说AppIcon和LaunchImage(视网膜4仍然在那里工作)。 我不想编写额外的代码来使其工作(实际上这是我目前所做的,就像iPhone 6上带有资产目录的全屏图像一样)。 那么是否有可能只是设置资产来使其工作?

我提出了一个苹果技术支持的门票,他们证实,目前没有办法做到这一点。 我必须为它编写一些代码。 “目前,资产目录无法加载特定于设备的图像,如果您的应用需要支持特定于设备的图像,则需要实现自己的代码来检测屏幕大小并select合适的图像。请使用以下链接进行请求,请务必说明您的使用情况。

您可以修改定义图像集的JSON

  1. 在Finder中,转到图像集的文件夹。 您可以右键单击Xco​​de中的图像集,然后select“在Finder中显示”。
  2. 打开Content.json文件
  3. 在“images”数组中添加Json上“Retina 4 2x”的定义。

    {“idiom”:“iphone”,“subtype”:“retina4”,“scale”:“2x”},

例如,为iPhone准备一个完整的空文件:

{ "images" : [ { "idiom" : "iphone", "scale" : "1x" }, { "idiom" : "iphone", "scale" : "2x" }, { "idiom" : "iphone", "subtype" : "retina4", "scale" : "2x" }, { "idiom" : "iphone", "scale" : "3x" } ], "info" : { "version" : 1, "author" : "xcode" } }