https://twitter.com/ethanhuang13/status/1316376515269980163?s=20
iPhone 12 上市之前我用 Xcode 12.1 的 Simulator 研究了一下新裝置的螢幕解析度,並且把資訊整理成表格。
發現
- iPhone 12 mini 的邏輯解析度同 iPhone 11 Pro。但是 top safe area inset 是 50 pt,狀態列卻是 44 pt。這是因為瀏海高度跟其他機種還是一樣
- iPhone 12 與 12 Pro 的螢幕幾乎完全相同(僅標準亮度有一點差別),在程式上可以視為一樣的規格
- iPhone 12 比 11 的螢幕實際尺寸更大,但邏輯解析度反而較小。所以用來顯示文字或遊戲的話會內容會比較少
- iPhone 12 Pro Max 比 11 Pro Max 稍微大一點
坑
舉例來說,如果你有以下壞習慣,在 iPhone 12 系列 UI 會壞掉:
- 寫死 UIScreen 寬度 414 pt 來判斷是不是 iPhone
- 寫死 top safe area inset 為 44 pt
iPhone 螢幕解析度表
- 實體解析度:指的是螢幕面板的「像素」、px、pixel
- 邏輯解析度:指的是程式排版的單位「點」、pt、point
- px 除以 scale 就得到 pt
- UI 元件在實際視覺與觸控上的面積,取決於點/每英吋(pt per inch)。比如以前 Apple 建議設計按鈕不要小於 44 pt
- Plus 跟 mini 的 scale 不是整數,其細節這裡忽略
- 目前每英寸/點的範圍介於 153~165 之間,最低的是 iPhone X 以上的 Pro 系列,最高的是 iPhone 12 mini