iPhone 螢幕解析度終極指南
上週,蘋果釋出了三款新的 iPhone 裝置,它們的螢幕資料分別如下:
- iPhone XS: 5.8 英寸,375pt * 812pt (@3x);
- iPhone XR: 6.1 英寸,414pt * 896pt (@2x);
- iPhone XS Max: 6.5 英寸,414pt * 896pt (@3x);
在國外的 ofollow,noindex">PaintCode 網站上,整理了包括從第一代 iPhone 到最新發布的 iPhone XS Max 等所有 iPhone 裝置的螢幕資料,包括:開發尺寸(points)、物理尺寸(pixels)以及實際渲染畫素、1倍/2倍/3倍模式等,如圖 1 所示(建議大圖檢視更加清晰)。
從圖中資料我們可以總結以下幾點:
-
5.8 英寸的 iPhone X/XS 與 6.1 英寸的 iPhone XR 和 6.5 英寸的 iPhone XS Max 的 螢幕寬高比 是一致的,約為
0.462
; -
iPhone X/XS 的螢幕寬度(開發尺寸)與 4.7 英寸的 iPhone 8 相同,都為 375pt,只是在高度上增加了 145pt;
-
iPhone XR 和 iPhone XS Max 的螢幕寬度(開發尺寸)與 5.5 英寸 iPhone 8 Plus 相同,都為 414pt,只是在高度上增加了 160pt;
因此,設計師在出圖時,仍然可以以 iPhone 8 和 iPhone 8 Plus 的螢幕寬度為基準分別進行 UI 佈局,而對於不同高度的螢幕只要在縱向上進行內容延伸即可。
此外,我們發現,對於未進行新螢幕尺寸適配的工程,直接編譯,在新裝置 iPhone XR 和 iPhone XS Max 上執行,它們是以 放大模式 自動適配的(以 5.8 寸的 iPhone X 螢幕為基準等比例放大),此時在程式碼中獲取到的螢幕寬高都為 375pt * 812pt。
那麼如何正確適配新的螢幕尺寸呢?
-
如果你的工程是以
LaunchScreen.storyboard
作為啟動頁,則只需要在 Xcode 10 下重新編譯工程即可; -
如果你的工程是通過配置
Assets.xcassets
裡的LaunchImage
不同尺寸的啟動圖片作為啟動頁,則你需要新增兩張 828px 1792px 和 1242px 2688px 解析度的圖片,如圖 2 所示。
最後,我們如何在程式碼中判斷當前裝置是否為 iPhone X 呢?(這裡的 iPhone X 泛指上述介紹的 5.8/6.1/6.5 英寸三種尺寸的帶頂部劉海和底部操作條的裝置)有一種比較簡便的方法就是獲取螢幕的高度,判斷是否等於 812 或 896,程式碼如圖 3 所示。