iOS:適配(一)--Universal通用程式 iPhone、iPad介面(方法)

來源:互聯網
上載者:User
     前言

        一個Universal程式還是iPhone、iPad倆個版本 。

        通用的:         

優點:

一個安裝包,方便管理、分發 可共用一套邏輯代碼,資料結構
缺點:
安裝包會很大:iPad版本用的圖片與iPhone版本的不一樣,而且iPad的圖片大小比較大,積壓起來,會導致整個安裝包很大
代碼中各種判斷是否iPad的邏輯分支,會導致代碼混亂
        倆個版本的:
優點:
app可分別針對iPad、iPhone的特點做設計
安裝包相對會比較小
缺點:
兩個按照包,不易於管理、分發

       建議:如果你的app,iPad版本跟iPhone版本的介面是差不多的,就做相容iPad和iPhone的app,否則就分開做iPad版、iPhone版。     前提

        修改目標裝置族(Build裡面的Targeted Device Family選為iPhone/iPad ),如果未修改的話,在iPad上啟動並執行話,還是iPhone介面,只不過能“2x”放大縮小,修改完target device之後,顯示是iPad介面,原有iPhone上的介面效果在iPad只佔螢幕一部分(ios 6以後發現,無論Target Device是否為Universal,運行什麼device,顯示該機器介面大小,至於顯示效果是只佔一部分還是超出螢幕,看代碼怎麼寫的)       方案1:一套代碼及XIB介面檔案,代碼分if和else來分別處理多種裝置     

         適用條件:
          iPhone、iPad介面布局一樣,比例相同,只不過大小不一樣,直接在initWithFrame、initWithCorder裡面做比例變換即可。       方案2:一套代碼及兩套XIB介面檔案,兩套介面公用一套代碼         適用條件:           iPhone、iPad介面布局不一樣,功能、流程、商務邏輯差不多 相關技術: 1. 代碼裡不同邏輯處理:

if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad){//iPad 版本代碼;}else{//iPhone/iPod touch 版本代碼;}
2.關於資源檔:           iOS Supports Device-Specific Resources(參考:官網中《Resource Programming Guide》iOS Supports Device-Specific Resources小節):格式如下: 
<basename><device>.<filename_extension>
 device說明: 一般都是:xxx~ipad.extension + xxx.extension倆套(不必xxx~iphone.extension) ~ipad - The resource should be loaded on iPad devices only.
~iphone - The resource should be loaded on iPhone or iPod touch devices only.           意味著,
// 圖片UIImage* anImage = [UIImage imageNamed:@"MyImage.png"];// On an iPhone or iPod touch device, the system loads the MyImage~iphone.png resource file, while on iPad, it loads the MyImage~ipad.png resource file. If a device-specific version of a resource is not found, the system falls back to looking for a resource with the original filename, which in the preceding example would be an image named MyImage.png// xibMyViewController *viewController = [[MyViewController alloc]                                      initWithNibName:@"MyViewController" bundle:nil]// load MyViewController~ipad.xib on an iPad, and MyViewController.xib on other devices// 其他類似
3.關於初始配置:

          在info.plist檔案中, Launch  image、Main nib file base name、Main storyboard file base name、Supported Interface Orientation這些類似,都能設定成iPhone、iPad不同版本。           對於AppIcon,Image.xcasset裡面也有倆套圖片。       方案3:兩套代碼及XIB介面檔案,兩套代碼及介面互不相干 相關技術:
@interface ViewController : UIViewController@end@interface ViewController_iPad : ViewController@end@interface ViewController_iPhone : ViewController@end
           適用條件:           iPhone、iPad介面布局不一樣,功能、流程、商務邏輯不一樣
------------------------ 參考:  iPhone 移植到 iPad:http://blog.csdn.net/ch_soft/article/details/7099534 iOS Supports Device-Specific Resources小節:《Resource Programming Guide》
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.