2013-04-16 46 views
3

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

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

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

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

在iPhone 5的视网膜显示屏,双尺寸图片不能正常融入背景,因为高度的iPhone 5不仅仅是双倍大小,它像双倍大小加上额外的像素。这就是为什么我想要将背景图像定制为比双倍大的原因。

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

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

回答

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:@"[email protected]"]; 
} 
else 
{ 
    self.backgroundImage.image = [UIImage imageNamed:@"[email protected]"]; 
} 
0

没有,应用程序将不会被拒绝。

这不是一个很好的方法来做你喜欢做的事情。当您的应用在非视网膜硬件上运行时,将使用正常图像,并且每当使用视网膜硬件时,将自动使用@ 2x图像。

这两个图像都是空闲的。