iPhone 分辨率與適配



分辨率和像素

經新xcode6模擬器驗證(分辨率爲pt,像素爲真實pixel):

1.iPhone5分辨率320x568,像素640x1136,@2x

2.iPhone6分辨率375x667,像素750x1334,@2x

3.iPhone6 Plus分辨率414x736,像素1242x2208,@3x,(注意,在這個分辨率下渲染後,圖像等比降低pixel分辨率至1080p(1080x1920)

蘋果對Retina的處理一直是用了2x的方案,從4一直到6都是這樣
但是6+比較奇葩,先用了736*414的低分辨率,再3x放大,成爲1242*2208,再縮小到1080p的屏幕上
這樣6+的實際分辨率幾乎達到了iPad的水平,而且還要經過一次縮放,很可能會拖累性能啊。。。
不知道具體的影響嚴重不嚴重





自動適配

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

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

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


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




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


不過這個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)


                                                            華麗的分割                                                                                              






現如今 iPhone 在尺寸上終於“百花齊放”了,有點向 Android 世界發展的趨勢。至日前 Apple 發佈 iPhone 6 和 iPhone 6 Plus 時,iPhone 家族有了如下五種不同的屏幕:

首先是以實際物理尺寸爲準的相對大小,如下圖綠色所示:

然而由於屏幕的實際像素密度(ppi)不同,如果按實際像素的數量來比較的話,得到的是下面的相對大小,如藍色所示:


可以看到,第一代屏幕因爲是非 Retina 的,雖然物理尺寸和 iPhone 4/4S 一樣,但像素數量少得可憐。而最新發布的 iPhone 6 Plus 雖然設備尺寸比 iPhone 6 只是稍大,但實際像素卻多了許多,不愧是 401ppi 的屏幕。




文章來自:

[http://www.cocoachina.com/ios/20140912/9601.html]
[http://tieba.baidu.com/p/3295751098]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章