iPhone6 分辨率與適配
分辨率和像素
經(jīng)新xcode6模擬器驗(yàn)證(分辨率為pt,像素為真實(shí)pixel):
- iPhone5分辨率320x568,像素640x1136,@2x
- iPhone6分辨率375x667,像素750x1334,@2x
- iPhone6 Plus分辨率414x736,像素1242x2208,@3x,(注意,在這個(gè)分辨率下渲染后,圖像等比降低pixel分辨率至1080p(1080x1920))
PaintCode做了幾個(gè)圖講解的非常明了
自動(dòng)適配
不處理時(shí)自動(dòng)等比拉伸,如果在老工程打印屏幕frame,依然是320x568
對(duì)比自動(dòng)適配的和***適配的導(dǎo)航欄就能看出問(wèn)題:
因?yàn)槔焖詴?huì)有一些虛,導(dǎo)航欄明顯比64要大,但相比3.5寸到4寸的留黑邊還是好很多。
如何關(guān)閉自動(dòng)適配方案呢?這個(gè)還是老思路,換啟動(dòng)圖:
除了換啟動(dòng)圖外,不得不說(shuō)的是,新Xcode中可以使用一個(gè)xib
來(lái)設(shè)置啟動(dòng)圖:
不過(guò)這個(gè)xib不能關(guān)聯(lián)任何的代碼(不能自定義View的Class,不能IBOutlet,不能加Object),可以理解成這個(gè)xib就是一張截圖,這個(gè)方案的好處在于可以使用到Size Classes
來(lái)針對(duì)不同屏幕布局這個(gè)xib(感興趣可以看《Size Classes初探》)
關(guān)于手動(dòng)適配
只要手動(dòng)指定了啟動(dòng)圖或者那個(gè)xib,屏幕分辨率就已經(jīng)變成應(yīng)有的大小了,老代碼中所有關(guān)于寫(xiě)死frame值的代碼通通倒霉,如果去手動(dòng)適配就要全部適配,建議在找到個(gè)可行方案前先不要做修改,自動(dòng)適配方案還算不影響使用。
面對(duì)4個(gè)分辨率的iPhone,建議使用Auto Layout
布局 + Image Assets
管理各個(gè)分辨率的圖片 + Interface Builder
(xib+storyboard)構(gòu)建UI,Size Classes
在低版本iOS系統(tǒng)的表現(xiàn)未知。想要這套手動(dòng)適配方案,起碼你的工程需要部署在iOS6+,還不用AutoLayout布局的會(huì)死的蠻慘。
關(guān)于Xcode6
- 模擬器路徑被換成了
~/Library/Developer/CoreSimulator/Devices/
- xcode6中已經(jīng)找不到iOS6的模擬器了,是時(shí)候說(shuō)服大家放棄iOS7-了
現(xiàn)在起提交App Store強(qiáng)制需要支持64位,是時(shí)候梳理一遍所有依賴的第三方lib,更新到64位