1

在 xcode 7 中,这些不是视网膜 4 选项,据此苹果故意将其删除。我确实编辑了 Contents.json 以将其取回,但效果不一样!我记得在 XCode6/pre-iOS9 iPhone 6 将使用视网膜 4 图片,所以我只需要为 iPhone 4/4s 设置一张全屏 2x 图片,为 iPhone 5/5s 和 6 设置一张全屏 Retina 4。

我认为在 iPhone 6 上使用 Retina4 真的很有意义,而 2x 则不然!因为 1334/750 约为 1.778,接近 1136/640 = 1.775 而 960/640 = 1.5。我的 640*1136 图片在 iPhone 6 上可以正常显示,而 640*960 图片失真。

但是使用 Xcode 7,即使我恢复了视网膜 4 选项,iPhone 6 仍然使用 2x (640*960) 图片而不是视网膜 4 图片(iPhone 5/5s 确实使用视网膜 4 并且现在可以正常显示)。我试图将设备类型从 iPhone 更改为 Universal,同样。

所以我的问题是如果苹果故意删除了retina4,那么我如何在xasset 中设置全屏图像以使其适用于iPhone 4/5/6?我只谈论全屏图像。我理解使用 2x 的非全屏图像是有意义的。

顺便说一句,我不是在谈论 AppIcon 和 LaunchImage(视网膜 4 仍然存在并且可以工作)。我也不想编写额外的代码来使其工作(实际上这是我目前所做的,例如iPhone 6 上的 Fullscreen images with Asset Catalogs)。那么我是否有可能只是设置资产使其工作?

4

2 回答 2

2

我向苹果技术支持提出了一张票,他们确认目前没有办法做到这一点。我必须为它写一些代码。“目前,资产目录无法加载特定于设备的图像。如果您的应用程序需要支持特定于设备的图像,您将需要实现自己的代码来检测屏幕尺寸并选择合适的图像。您可以提交增强使用以下链接请求。请务必解释您对此功能的用例。“

于 2015-11-13T02:07:08.333 回答
0

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

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

    {“成语”:“iphone”,“子类型”:“retina4”,“规模”:“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"
  }
}
于 2016-04-28T13:38:06.510 回答