2013-04-16 274 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圖像。

這兩個圖像都是空閒的。