iPhone 5 视网膜显示屏的2倍图像

3
为了将iPhone迁移到视网膜设备,我们需要准备具有两倍分辨率的图像,并使用“@2x”命名,这样IOS就会自动在视网膜设备中使用2倍图像。
我的问题是,如果我违反规定,创建一个三倍大小(或大于两倍大小)的图像,但将其命名为“@2x”,如苹果规定那样。苹果会拒绝上传我的应用到AppStore吗?
我这么做的原因是当我设置背景图像时,我按照以下方式进行:
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed: @"background.png"]];

在iPhone 5的Retina显示屏上,双倍大小的图像无法正确适应背景,因为iPhone 5的高度不仅是双倍大小,还多了额外的像素。这就是为什么我想将背景图像定制为比双倍大小更大的原因。
我真的不想在我的应用程序中添加额外的代码来手动检查设备类型并加载相应的图像,因为iOS有更好、更方便的方法。
我的担心是,在这种情况下,苹果是否会拒绝我的应用程序?
2个回答

4

如果您创建的图像具有“错误”的大小/分辨率,苹果不会拒绝您的应用。但是,这样做通常没有意义。

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

此外,您应该使用UIImageView来处理大型背景图像(更好的内存管理和性能)。

将以下内容添加到您的类文件或项目的前缀文件中:

#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"];
}

0

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

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

提供两个图像是无意义的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接