有的時候應用需要能夠在iPhone和iPad上運行,當然我們可以選擇做兩個完全不同的工程,然後共用一些類,但是我們也可以只建立一個工程,然後編譯產生一個產品,這個產品能夠自適應iPhone和iPad裝置,然後在App Stroe發布的時候,它會有兩套不同的展示給使用者。App Store上的Evernote應用,它有兩套iPhone和iPad,這說明Evernote就是自適應iPhone和iPad裝置的。
我們來做一個名為UniversalSample的自適應iPhone和iPad裝置的工程。
首先,在建立時候選擇Devices為“Universal”,我們以前一直選擇的是iPhone,如果開發iPad專用的應用需要勾選iPad。
建立好之後產生有兩套故事板,如果用nib實現也會有兩套檔案。
選擇TARGETS,iPhone的“Main Storyboard”(主故事板)設定的是MainStoryboard_iPhone,主故事板在應用啟動時候被首先載入,它設定應用的根視圖和啟動的第一個畫面。iPad的(主故事板),設定的是MainStoryboard_iPad。
運行時需要選擇運行裝置,有iPad 6.0 Simulator、iPhone 6.0 Simulator和iOS Device(真機運行)幾個選項,選擇iPhone 6.0 Simulator,這說明應用要在iPhone 6.0模擬器上運行。
在編程時可以通過下面語句判斷裝置,常量UIUserInterfaceIdiomPhone 用於判斷是否為iPhone裝置,UIUserInterfaceIdiomPad用於判斷是否為iPad裝置。
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {// iPhone裝置} else {// iPad 裝置}
更多iOS6開放知識請參考《iOS6開放指南》本書其他內容。