gpt4 book ai didi

ios - Xcode 6 设备特定的 Assets 目录

转载 作者:IT王子 更新时间:2023-10-29 07:47:44 25 4
gpt4 key购买 nike

我正在尝试为新的 6 和 6+ 设备更新我的应用。

我为新的 iPhone 尺寸(6 和 6+)添加了启动图片。 6 岁和 6 岁以上的 Assets 目录中都有条目。没问题。

我还需要添加一些全屏 View 叠加图像。我已经在@2x (iPhone 4s) 和 R4 (iPhone 5 5s 5c) 中有了这些图像。我已经以新的分辨率尺寸创建了图像,但我不确定如何将它们添加到图像集中。

当我进入 Assets 目录时,我可以在图像集中选择设备特定,然后我会看到 iPhone、retina-4 和 iPad 的条目。有用于 1x、2x、Retina 4 2x 和 3x 的拖放井。

我的问题 - 我应该把 iPhone 6 的图像放在哪里?显然 3x 是给 6 plus 的。我看不出 retina-4 如何同时适用于 iPhone 5 和 iPhone 6,因为屏幕尺寸不同。

我错过了什么?

最佳答案

我相当确定这是 Xcode 6 中的一个错误。当您从 Assets 目录图像集中加载图像时,无论您是缩放模式还是标准显示模式,您总是会获得 iPhone 6+ 的 3x 条目。对于 iPhone 6,您将始终在两种模式下获得 2x 条目。对于 iPhone 4s,您还将获得 2x 条目。

所有这些设备都有不同的缩放比例和纵横比,因此这对于像素精确的图像来说是 Not Acceptable 。我的图片都是全屏显示的,应该是叠加层,所以在缩放模式下我看到的位置不正确。

我通过创建两个图像集解决了这个问题:
1) iPhone 6/6plus 标准模式
3x 条目中的 1242x2208 图片
2x 条目中的 750x1334

2) 缩放模式下的 iPhone 6/6Plus 或 iPhone 5
3x 条目为 1125x2001
640x1136 用于 2x 条目
R4-2x 条目为 640x1136

为了完成这项工作,我需要确定该设备是否是新设备之一,以及它们是否处于缩放模式。根据此信息,我从正确的图像集中加载图像。

这是我用来确定设备是否是缩放/标准模式下的新设备之一的代码:

UIScreen *screen = [UIScreen mainScreen];
if (screen.scale == 3 && screen.currentMode.size.width == 1242 ||
screen.scale == 2 && screen.currentMode.size.width == 750) {
self.overlay = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"StdImageSet"]];
} else {
self.overlay = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ZoomedImageSet"]];
}

这很丑陋,我讨厌必须这样做,因为图像集应该消除这种代码。我还没有找到更好的解决方法,我已经提交了一个雷达(雷达 18463463)错误。

关于ios - Xcode 6 设备特定的 Assets 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25954706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com