iPhone 5视网膜显示2x图像

时间:2013-04-16 09:38:36

标签: iphone ios objective-c

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

我的问题是,如果我违反规则并创建三倍大小(或大于双倍大小)的图像,但将其命名为“@ 2x”作为Apple规则状态。 Apple会拒绝我的申请上传到AppStore吗?

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

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

在iPhone 5视网膜显示器中,双倍尺寸的图像无法正确放入背景中,因为iPhone 5的高度不仅仅是双倍尺寸,而是像双倍尺寸加上额外的像素。这就是我想要将背景图像定制为大于双倍大小的原因。

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

我担心Apple会在这种情况下拒绝我的应用吗?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

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

给两张照片都是空闲的。