讓你的應用支持新iPad的Retina顯示屏


1、應用圖片
標準iOS控件裏的圖片資源,蘋果已經作了相應的升級,咱們須要操心的是應用本身的圖片資源。就像當初爲了支持iPhone 4而製做的@2x高分辨率版本(譯者:如下簡稱高分)圖片同樣,咱們要爲iPad應用中的圖片製做對應的高分版本。我知道很多開發者頗有預見性的早在iOS 5.0 SDK上就完成了這一步升級。但是我仍是要強調一點,那就是以前 Michael Jurewitz ( @Jury )在推上提到過的:

— 若是想讓你的高分圖片顯示在新iPad上,你必須用Xcode 4.3.1 連同iOS 5.1 SDK編譯!

2、應用圖標

接下來確定就是爲應用主圖標製做高分版本了,由於低分版的圖標在新iPad桌面上看起來會慘不忍睹。爲了支持更多的iOS設備、更高分辨率的屏幕,iOS開發者須要爲本身的應用準備各類尺寸的主程序圖標文件,並且這個文件列表貌似會愈來愈長愈來愈長……(譯者:嘆氣~)。詳情請參考最新的蘋果開發者文檔 iOS App Programming Guide 和 iOS Human Interface Guidelines 。從官方文檔中,我找出來針對新iPad的Retina顯示屏咱們須要準備的東西:

iPad主應用圖標 (144×144像素):以前用在iPad 一、2代上的是72×72 像素。如今咱們須要額外的@2x版本(144×144 像素)。

iPad搜索結果圖標 (100×100像素):這個圖標出如今系統搜索結果中(譯者注:還有在系統設置中,若是應用支持的話)。以前版本用的是50×50像素,如今@2x版本須要100×100像素。

文件命名和Info.plist文件
根據你的應用須要支持的iOS最低版本不一樣,你可能須要在Info.plist文件中指定圖標文件名,或者是按照蘋果的規範命名不一樣版本的主圖標文件。最悲催的狀況恐怕就是,你搞的是一個便可跑在iPhone也可跑在iPad上的通用應用(universal app),而且你打算支持iOS 3.1.x甚至更早的版本(譯者:其實如今iOS 4.0及以上版本的設備普及率已經很高了,徹底沒有必要支持古董級的版本,咱又不是Android)。由於iOS 3.2以前是不支持在Info.plist文件裏面指定圖標文件的,因此你得使用蘋果指定的規範去命名圖標文件。一個完整的列表差很少就是下面這個樣子:
● Icon.png – 57×57 iPhone應用圖標
● Icon@2x.png – 114×114 iPhone Retina顯示屏應用圖標
● Icon-72.png – 72×72 iPad應用圖標
● Icon-72@2x.png  - 144×144 iPad Retina顯示屏應用圖標
● Icon-Small.png – 29×29 iPhone 系統設置和搜索結果圖標
● Icon-Small@2x.png – 58×58 iPhone Retina顯示屏 系統設置和搜索結果圖標
● Icon-Small-50.png – 50×50 iPad 系統設置和搜索結果圖標
● Icon-Small-50@2x.png – 100×100 iPad Retina顯示屏 系統設置和搜索結果圖標
 
若是你的應用僅兼容iOS 3.2及以後的版本,那麼你能夠在Info.plist文件裏面指定圖標文件,你不用遵照上面的命名規範,固然你非要那麼命名也沒有問題(譯者:爲了便於和美工溝通和往後項目資源的管理,仍是建議遵循這套規範)。在iOS 3.2中,蘋果在Info.plist文件中引入了CFBundleIconFiles鍵,在此其中你能夠直接指定應用圖標的各類版本。若是你忽略了.png的後綴名,那麼你也能夠忽略高分版本圖片的@2x部分,系統會自動匹配。

蘋果在iOS 5.0中爲了支持報刊雜誌(Newsstand)功能,再次引入了一個新的鍵 CFBundleIcons,這讓事情變得更加複雜起來(譯者:再次嘆氣~)。這個鍵下含有子鍵CFBundlePrimaryIcon,裏面的CFBundleIconFiles子鍵保存着在此以前保存在Info.plist根節點CFBundleIconFiles鍵裏面的內容。若是你的應用僅支持iOS 5.0及以後版本,那麼用一個 CFBundleIcons鍵就能夠,不然的話你還須要同時保留CFBundleIconFiles鍵和相關內容。

(譯者:這裏原文講述稍微有點誤差,未提到CFBundlePrimaryIcon,並且比較混亂,使人費解。其實在Xcode裏面以默認方式打開Info.plist看到的會是Icon Files和Icon Files(iOS 5)兩組鍵)

總之,爲了作到向後兼容,這個環節會給開發者帶來一點小混亂,至關容易犯錯。因此,建議開發者針對不一樣的設備、屏幕組合多作測試。
 
3、應用商店截屏圖片

蘋果近期對應用提交作出了規則調整,如如果iPhone、iPod touch應用,必須提交Retina顯示屏高分版本的應用屏幕截圖。具體圖片尺寸要求以下 (前面的尺寸是含系統狀態欄狀況下的截圖):
- 橫屏: 960×640 或 960×600
- 豎屏: 640×960 或 640×920

目前蘋果還沒有對iPad應用提交也作出相似要求,可是爲了讓你的應用截圖在新iPad上看起來呼之欲出,如今是時候考慮使用高分版本截圖了。對應的截圖尺寸以下 (前面的尺寸是含有狀態欄狀況下的截圖):
- 橫屏: 2048×1536 或 2048×1496像素
- 豎屏: 1536×2048 或 1536×2008像素

譯者注:原文評論中有人作了補充的,運行時的載入畫面,針對新iPad屏幕也須要準備,文件命名和尺寸要求:
- 橫屏: Default-Landscape@2x~ipad.png (2048×1496像素)
- 豎屏: Default-Portrait@2x~ipad.png (1536×2008像素)
html


-----------------------------------------------------------------------------------------------------------------------------ios

-----------------------------------------------------------------------------------------------------------------------------
瀏覽器

ICON 設置 官網文檔:http://developer.apple.com/library/ios/#qa/qa1686/_index.htmlapp

iPhone、iPad通用的設置iphone

圖片大小 (px)ide

文件名工具

用途開發工具

重要程度測試

512x512動畫

iTunesArtwork

iTunes 商店中展現

在iTunes中獲取iTunesArtwork圖片

①打開iTunes,點擊左側的iTunes Store,在選中的應用圖標上右鍵 拷貝連接,

以後在瀏覽器中打開連接(這個連接是應用在AppStore上的介紹頁面)

如:http://itunes.apple.com/cn/app/pocket-rpg/id411690524?mt=8

②在顯示的頁面中,用瀏覽器上帶的開發工具,定位到頁面左上角的

175×175的應用ICON

如:http://a3.mzstatic.com/us/r1000/089/Purple/43/61/36/mzl.gvbidihl.175x175-75.jpg

以後將這個連接中的175x175改爲512x512後,再打開就獲得了對應的

iTunesArtwork圖片了

http://a3.mzstatic.com/us/r1000/089/Purple/43/61/36/mzl.gvbidihl.512x512-75.jpg

能夠沒有,推薦有

若是沒有,在ituens中就不能顯示圖標,如圖:


未知風格,是由於 Ad Hoc版本,就是測試版,

沒有正式發佈到App Store 上 

57x57

Icon.png

iPhone/iPod touch上的App Store以及Home界面

這個真得有

114x114

Icon@2x.png

iPhone 4(高分辨率)Home 界面  [App Icons 設置中的Retina Display]  

能夠沒有,推薦有

72x72

Icon-72.png

兼容iPad的Home界面  [App Icons 設置中的第一個圖片]  

能夠沒有,推薦有

29x29

Icon-Small.png

Spotlight搜索以及設置界面

能夠沒有,推薦有

50x50

Icon-Small-50.png

兼容iPad的Spotlight搜索

若是有設置束,最好有

58x58

Icon-Small@2x.png

iPhone 4(高分辨率)的Spotlight搜索和設置界面

若是有設置束,最好有

320x480            Default.png                     iPhone4  Launch Images  

640*960            Default@2x.png             iPhone4 Launch Images 

768x1024          Default-Portrait~ipad.png    iPad Launch Images 

1024x768          Default-Landscape~ipad.png  iPad Launch Images 

Default-Landscape~ipad.png專爲iPad的應用程序

圖片大小 (px)

文件名

用途

重要程度

512x512

iTunesArtwork

iTunes 商店中展現

能夠沒有,推薦有

72x72

Icon-72.png

App Store以及iPad上的Home界面

這個真得有

29x29

Icon-Small.png

iPad上的設置界面

若是有設置束,最好有

50x50

Icon-Small-50.png

兼容iPad的Spotlight搜索

能夠沒有,推薦有


如今不提供iPhone4的必須圖標Icon@2x.png,將通不過App Store的審覈,因此,如今Icon@2x.png也是必須的了。

iPhone tab bar Item image

Standard display
  30x30 .PNG, 24-bit with transparency (but use only 1 color). Worst case size ~350 bytes. 標準的設置 tabicon.png  

Retina display 
  60x60 .PNG, 24-bit with transparency (but use only 1 color). Worst case size ~2000 bytes.    tabicon@2x.png

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITabBarItem_Class/Reference/Reference.html

iphone啓動頁面,Default.png

延長Default.png顯示的時間

在delegate.m加入線程延遲

-(Bool)application:(UIApplication *)application didFinishLaunchingWithOptions:  (NSDictionary *)launchOptions

{

   [NSThread sleepForTimeInterval:10];

   .............

}

應用的Default.png圖片顯示的時間 和 機器加載應用的速度成正比,加載越快,顯示的時間越短,加載越慢,顯示的時間越長,

感受快的話,能夠用上面方法延長它的顯示時間


iOS設備如今有三種不一樣的分辨率:

iPhone 320x480, 

iPhone 4 640x960, 

iPad 768x1024。

之前程序的啓動畫面(圖片)只要準備一個Default.png就能夠了,可是如今變得複雜多了。

若是一個程序,既支持iPhone又支持iPad,那麼它須要包含下面幾個圖片:

Default-Portrait.png iPad專用豎向啓動畫面 768x1024或者768x1004

Default-Landscape.png iPad專用橫向啓動畫面 1024x768或者1024x748

Default-PortraitUpsideDown.png iPad專用豎向啓動畫面(Home按鈕在屏幕上面),可省略 768x1024或者768x1004

Default-LandscapeLeft.png iPad專用橫向啓動畫面,可省略 1024x768或者1024x748

Default-LandscapeRight.png iPad專用橫向啓動畫面,可省略 1024x768或者1024x748

Default.png iPhone默認啓動圖片,320x480或者320x460

Default@2x.png iPhone4啓動圖片640x960或者640x920


爲了在iPad上使用上述的啓動畫面,你還須要在info.plist中加入

key: UISupportedInterfaceOrientations。

同時,加入值

UIInterfaceOrientationPortrait

UIInterfaceOrientationPortraitUpsideDown

UIInterfaceOrientationLandscapeLeft

UIInterfaceOrientationLandscapeRight。

iPhone上實現Default.png動畫
原理:
添加一張和Default.png同樣的圖片,對這個圖片進行動畫,從而實現Default動畫的漸變消失的效果。
操做:
在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中添加以下代碼:
 // Make this interesting.
    UIImageView *splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)];
    splashView.image = [UIImage imageNamed:@"Default.png"];
    [self.window addSubview:splashView];
    [self.window bringSubviewToFront:splashView];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:2.0];
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView: self.window cache:YES];
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)];
    splashView.alpha = 0.0;
    splashView.frame = CGRectMake(-60, -85, 440, 635);
    [UIView commitAnimations];
就ok了



Sizes of iPhone UI Elements


iPhone開發中常常用到的控件尺寸大集合 - 鈞 - 鈞的博客__側面
Element Size (in points)
Window (including status bar) 320 x 480 pts
Status Bar
(How to hide the status bar)
20 pts
View inside window 
(visible status bar)
320 x 460
Navigation Bar 44 pts
Nav Bar Image /
Toolbar Image
up to 20 x 20 pts (transparent PNG)
Tab Bar 49 pts
Tab Bar Icon up to 30 x 30 pts (transparent PNGs)
Text Field 31 pts
Height of a view inside 
a navigation bar
416 pts
Height of a view inside 
a tab bar
411 pts
Height of a view inside 
a navbar and a tab bar
367 pts
Portrait Keyboard height 216 pts
Landscape Keyboard height 140 pts
Points vs. Pixels
The iPhone 4 introduced a high resolution display with twice the pixels of previous iPhones. However you don't have to modify your  code to support high-res displays; the coordinate system goes by points rather than pixels, and the dimensions in points of the screen and all UI elements remain the same.
iOS 4 supports high resolution displays (like the iPhone 4 display) via the  scale property on UIScreen, UIView, UIImage, and CALayer classes. If the object is displaying high-res content, its scale property is set to 2.0. Otherwise it defaults to 1.0.
All you need to do to support high-res displays is to provide @2x versions of the images in your project. See the  checklist for updating to iOS4 or  Apple documentation for  Supporting High Resolution Screens for more info.
Adjusting Sizes
Click here to see how to adjust  View Frames and Bounds.
Additional References

// ----------------------------------------------------------------------------------------------------

圓角半徑

iTunes Artwork icon ───────────────────────── 512px (90px)

App icon(iPhone4) ────────────────────────── 114px (20px)

App icon(iPad) ───────────────────────────── 72px (12px)

App icon(iPhone 3G/3GS) ───────────────────── 57px(10px)

Spotlight/Settings icon icon(iPhone4) ───────────── 58px (10px)

Spotlight/Settings icon icon(iPhone 3G/3GS/iPad) ──── 29px (9px)

=====================================================================

  Designing an app for iPhone, iPad or iPhone4 Here's a couple of things to keep in mind: iPhone & iPod Touch (1st, 2nd & 3rd Generation)    Portrait: 320 x 480 px, 320 x 480 point    Landscape: 480 x 320 px, 480 x 320 point    Status Bar: 20px, 20point    DPI: 163dpi    Color Mode: 8bit RGB    Color Temperature: Warm    Application icon: 57 x 57 px, 57 x 57 point    Appstore icon: 512 x 512 px, 512 x 512 point    Spotlight search icon: 29 x 29px, 29 x 29 point    Document icon: 22 x 29 px, 22 x 29 point    Webclip icon: 57 x 57 px, 57 x 57 point    Toolbar icon: 20 x 20 px, 20 x 20 point    Tab bar icon: 30 x 30 px, 30 x 30 point    Launch image:  see above portrait/landscape iPhone4    Portrait: 640 x 960 px, 320 x 480 point    Landscape: 960 x 640 px, 480 x 320 point    Status Bar: 40px, 20point    DPI: 326dpi    Color Mode: 8bit RGB    Color Temperature: Cool    Application icon: 114 x 114 px, 57 x 57 point    Appstore icon: 512 x 512 px, 512 x 512 point    Spotlight search icon: 58 x 58 px, 29 x 29 point    Document icon: 44 x 58 px, 22 x 29 point    Webclip icon: 114 x 114 px, 57 x 57 point    Toolbar icon: 40 x 40 px, 20 x 20 point    Tab bar icon:  60 x 60 px, 30 x 30 point    Launch image:  see above portrait/landscape Notes: effectively pixel-doubled previous generations, bare in mind the screen is the same size and concessions will have to be made e.g. keeping assets the same *physical size but doubling their effective resolution. see below.* iPad    Portrait: 768 x 1024px, 768 x 1024point    Landscape: 1024 x 768px, 1024 x 768point    Status Bar: 20px, 20point    DPI: 132dpi    Color Mode: 8bit RGB    Color Temperature: Warm    Application icon: 72 x 72 px, 72 x 72 point    Appstore icon: 512 x 512 px, 512 x 512 point    Spotlight search icon (results): 50 x 50 px, 50 x 50 point    Spotlight search icon (settings): 29 x 29 px, 29 x 29 point    Document icon: 64 x 64 px, 64 x 64 point    Webclip icon: 72 x 72 px, 72 x 72 point    Toolbar icon: 20 x 20 px, 20 x 20 point    Tab bar icon: 30 x 30 px, 30 x 30 point    Launch image: see above portrait/landscape Notes: many apps include a rounded mask at the corners of the screen/split view - its part of the default view of many apps by the OS. The radius of the rounded corner of these are 6px onto a black background and are optional. Icon size radii (via Toxinide):    29x29px, border-radius: 5px    50x50px, border-radius: 9px    57x57px, border-radius: 10px    58x58px, border-radius: 10px     72x72px, border-radius: 12px    114x114px, border-radius: 20px     512x512px, border-radius: 90px