1. 程式人生 > >iPhone6解析度與適配(一)

iPhone6解析度與適配(一)

http://cc.cocimg.com/cms/uploads/allimg/140912/4196_140912103951_1.jpg

解析度和畫素

經新xcode6模擬器驗證(解析度為pt,畫素為真實pixel):

1.iPhone5解析度320x568,畫素640x1136,@2x

2.iPhone6解析度375x667,畫素750x1334,@2x    

3.iPhone6 Plus解析度414x736,畫素1242x2208,@3x,(注意,在這個解析度下渲染後,影象等比降低pixel解析度至1080p(1080x1920)

http://cc.cocimg.com/cms/uploads/allimg/140912/4196_140912103755_1.jpg

自動適配

不處理時自動等比拉伸,如果在老工程列印螢幕frame,依然是320x568

對比自動適配的和完美適配的導航欄就能看出問題:

http://cc.cocimg.com/cms/uploads/allimg/140912/4196_140912103816_1.jpg

因為拉伸所以會有一些虛,導航欄明顯比64要大,但相比3.5寸到4寸的留黑邊還是好很多。

如何關閉自動適配方案呢?這個還是老思路,換啟動圖:

http://cc.cocimg.com/cms/uploads/allimg/140912/4196_140912103837_1.jpg

除了換啟動圖外,不得不說的是,新Xcode中可以使用一個xib來設定啟動圖:

http://cc.cocimg.com/cms/uploads/allimg/140912/4196_140912103859_1.jpg

不過這個xib不能關聯任何的程式碼(不能自定義View的Class,不能IBOutlet,不能加Object),可以理解成這個xib就是一張截圖,這個方案的好處在於可以使用到Size Classes來針對不同屏幕布局這個xib(感興趣可以看《Size Classes初探》)

關於手動適配

只要手動指定了啟動圖或者那個xib,螢幕解析度就已經變成應有的大小了,老程式碼中所有關於寫死frame值的程式碼通通倒黴,如果去手動適配就要全部適配,建議在找到個可行方案前先不要做修改,自動適配方案還算不影響使用。

面對4個解析度的iPhone,建議使用Auto Layout佈局 + Image Assets管理各個解析度的圖片 + Interface Builder(xib+storyboard)構建UI,Size Classes在低版本iOS系統的表現未知。想要這套手動適配方案,起碼你的工程需要部署在iOS6+,還不用AutoLayout佈局的會死的蠻慘。

關於Xcode 6

模擬器路徑被換成了 ~/Library/Developer/CoreSimulator/Devices/

xcode6中已經找不到iOS6的模擬器了,是時候說服大家放棄iOS7-了

現在起提交App Store強制需要支援64位,是時候梳理一遍所有依賴的第三方lib,更新到64位。(編輯注:這一條據說是個bug)