2013-05-10 59 views
2

我對通用應用程序中的圖像命名約定有疑問,特別是對於ipad mini。ipad mini的圖像命名約定

我正在開發跨iphone 4s,ipad 3(即ipad with retina)和ipad mini的通用應用程序。我有一張圖像,我想要在應用程序中加載爲背景。我正在使用

[UIImage imageNamed:@"background"] 

得到圖像。這適用於iphone和ipad,但不適用於ipad mini。

要調試,我用

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"background" ofType:@"png"]; 
NSLog(@"background image: %@",filePath); 

,以確保正在選擇了正確的圖像。在iPad上,我得到

background image: /var/mobile/Applications/[...RESOURCEPATH...]/background.png 

,並在iPhone上我得到

background image: /var/mobile/Applications/[...RESOURCEPATH...]/background~iphone.png 

但在iPad上的迷你我得到

background image: (null) 

的真正奇怪的是,我已經包含的命名版本圖片:

background~iphone.png 
[email protected]~iphone 
background-Portrait~ipad 
[email protected]~ipad 

但本身不是background.png。

當我意識到這個錯誤時,我添加了background.png圖片,現在我的背景也顯示在mini上。

這裏發生了什麼,做這件事的正確方法是什麼?

回答

1

您將在圖像名稱中看到「修飾符」(如「-PortraitUpsideDown」)的唯一位置將成爲啓動圖像,如this Apple documentation (look in the "Providing Launch Images for Different Orientations" section)中所述。

你真的應該只有兩個背景圖像。一個用於正常分辨率和一個用於視網膜分辨率(即「@2x」後綴)。這兩個圖像應該能夠處理被很好地旋轉。

+0

@Dautermann:好的,我可以遵循這個慣例......但這並不能解釋爲什麼iPad找到了圖像,但迷你沒有。另外,iPad找到了一個不存在的圖像名稱? – Brandon 2013-05-10 23:19:28

+0

該文件應命名爲「'background @ 2x.png'」,以便在Retina顯示屏iPad Mini上顯示該文件。帶有後綴「'@ 2x〜ipad.png」和「@ 2x〜iphone.png」的文件名無效,或者至少它們沒有在任何地方正式記錄。我不會將我的圖像文件命名爲。 – 2013-05-10 23:23:05

+0

迷你視網膜顯示器嗎?我以爲是iPad 3,但迷你就像iPad 2一樣? – Brandon 2013-05-10 23:24:44