3

为了将 iPhone 迁移到 Retina 设备,我们必须准备具有双倍尺寸分辨率的图像并将其命名为“@2x”,以便 IOS 将自动在 Retina 设备中使用 2x 图像。

我的问题是,如果我违反规则并创建三倍尺寸(或大于两倍尺寸)的图像,但将其命名为“@2x”作为 Apple 法规状态,该怎么办。Apple 会拒绝我的应用程序上传到 AppStore 吗?

我这样做的原因是当我设置背景图像时,我做了如下:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed: @"background.png"]];

在 iPhone 5 的视网膜显示屏中,双倍尺寸的图像无法正确融入背景,因为 iPhone 5 的高度不仅仅是双倍尺寸,它就像双倍尺寸加上额外的像素。这就是为什么我想将背景图像自定义为大于两倍大小的原因。

我真的不想在我的应用程序中添加额外的代码来手动检查设备类型并加载相应的图像,因为 IOS 有更好和方便的方法。

我担心在这种情况下苹果会拒绝我的应用程序吗?

4

2 回答 2

4

如果您创建“错误”尺寸/分辨率的图像,Apple 不会拒绝您的应用程序。但是,这样做通常没有意义。

@2x表示分辨率,iPhone 4/4S 和 iPhone 5 的分辨率相同。唯一的区别是屏幕的高度。

此外,您应该将 aUIImageView用于大型背景图像(更好的内存管理和性能)。

将此添加到您的类文件或项目的前缀文件中:

#define deviceIsIPhone5 ([UIScreen mainScreen].applicationFrame.size.height == 568 ? YES : NO)

在你的viewDidLoad(或类似的地方):

if (deviceIsIPhone5) 
{
    self.backgroundImage.image = [UIImage imageNamed:@"background-568h@2x.png"];
} 
else
{
    self.backgroundImage.image = [UIImage imageNamed:@"background@2x.png"];
}
于 2013-04-16T10:06:49.963 回答
0

不,该应用程序不会被拒绝。

像你所做的那样,这不是一个好方法。当您的应用在非视网膜硬件上运行时,将使用普通图像,而每当您使用视网膜硬件时,将自动使用@2x 图像。

给出两个图像是空闲的。

于 2015-03-31T10:27:24.127 回答