iOS 获取各种机型的 状态栏、导航栏、TabBar、安全区域高度
iOS 获取各种机型的 状态栏、导航栏、TabBar、安全区域高度
导航栏/TabBar
导航栏高度不一定都是 44pt,TabBar 高度也不一定都是 49pt。推荐在布局完成后通过代码获取实际高度。
状态栏和安全区域
在普通 iPhone 全屏 App 中,系统状态栏通常在竖屏时显示、横屏时隐藏,但实际行为会受控制器配置、系统界面和当前状态影响。视频类 App 在横屏时看到的“时间 + 电量”通常是自定义界面,不应依赖固定的系统状态栏高度。
安全区域 API 从 iOS 11 开始提供,并不只适用于刘海屏。刘海、灵动岛和 Home Indicator 会让顶部、底部或横屏两侧出现非零 inset。状态栏高度与安全区域顶部也不一定相等,例如 iPhone Air 的状态栏为 54pt,而竖屏顶部安全区为 68pt。
以下数据更新于 2026-07-23,最新机型使用 Xcode 26.5 / iOS 26.5 模拟器实测,并与 Apple 官方规格交叉核对。宽高均按“宽 × 高”排列;安全区域顺序为 {top, left, bottom, right},单位均为 pt。
| 手机机型 | 屏幕尺寸(inch) | 屏幕宽高(pt) | 原生像素分辨率(px) | 屏幕比例 | 倍图 | 状态栏高度(pt) | 安全区域(竖屏 / 横屏,pt) |
|---|---|---|---|---|---|---|---|
| 17 Pro Max / 16 Pro Max | 6.9 | 440 × 956 | 1320 × 2868 | 19.5:9 | @3x | 54 | {62, 0, 34, 0} / {0, 62, 20, 62} |
| iPhone Air | 6.5 | 420 × 912 | 1260 × 2736 | 19.5:9 | @3x | 54 | {68, 0, 34, 0} / {0, 68, 20, 68} |
| 17 / 17 Pro / 16 Pro | 6.3 | 402 × 874 | 1206 × 2622 | 19.5:9 | @3x | 54 | {62, 0, 34, 0} / {0, 62, 20, 62} |
| 16 Plus / 15 Pro Max / 15 Plus / 14 Pro Max | 6.7 | 430 × 932 | 1290 × 2796 | 19.5:9 | @3x | 54 | {59, 0, 34, 0} / {0, 59, 20, 59} |
| 16 / 15 Pro / 15 / 14 Pro | 6.1 | 393 × 852 | 1179 × 2556 | 19.5:9 | @3x | 54 | {59, 0, 34, 0} / {0, 59, 20, 59} |
| 17e / 16e / 14 / 13 Pro / 13 / 12 Pro / 12 | 6.1 | 390 × 844 | 1170 × 2532 | 19.5:9 | @3x | 47 | {47, 0, 34, 0} / {0, 47, 20, 47} |
| 14 Plus / 13 Pro Max / 12 Pro Max | 6.7 | 428 × 926 | 1284 × 2778 | 19.5:9 | @3x | 47 | {47, 0, 34, 0} / {0, 47, 20, 47} |
| 13 mini / 12 mini | 5.4 | 360 × 780 | 1080 × 2340 | 19.5:9 | @3x | 50 | {50, 0, 34, 0} / {0, 50, 20, 50} |
| 11 Pro Max | 6.5 | 414 × 896 | 1242 × 2688 | 19.5:9 | @3x | 44 | {44, 0, 34, 0} / {0, 44, 20, 44} |
| 11 | 6.1 | 414 × 896 | 828 × 1792 | 19.5:9 | @2x | 48 | {48, 0, 34, 0} / {0, 48, 20, 48} |
| 11 Pro | 5.8 | 375 × 812 | 1125 × 2436 | 19.5:9 | @3x | 44 | {44, 0, 34, 0} / {0, 44, 20, 44} |
| XS Max | 6.5 | 414 × 896 | 1242 × 2688 | 19.5:9 | @3x | 44 | {44, 0, 34, 0} / {0, 44, 21, 44} |
| XR | 6.1 | 414 × 896 | 828 × 1792 | 19.5:9 | @2x | 48 | {48, 0, 34, 0} / {0, 48, 21, 48} |
| XS / X | 5.8 | 375 × 812 | 1125 × 2436 | 19.5:9 | @3x | 44 | {44, 0, 34, 0} / {0, 44, 21, 44} |
| 8 Plus / 7 Plus / 6S Plus / 6 Plus | 5.5 | 414 × 736 | 1080 × 1920 | 16:9 | @3x | 20 | {20, 0, 0, 0} / {0, 0, 0, 0} |
| SE(第 3/2 代)/ 8 / 7 / 6S / 6 | 4.7 | 375 × 667 | 750 × 1334 | 16:9 | @2x | 20 | {20, 0, 0, 0} / {0, 0, 0, 0} |
| SE(第 1 代)/ 5S | 4.0 | 320 × 568 | 640 × 1136 | 16:9 | @2x | 20 | {20, 0, 0, 0} / {20, 0, 0, 0} |
| 5C / 5 | 4.0 | 320 × 568 | 640 × 1136 | 16:9 | @2x | 20 | 不支持(最高系统低于 iOS 11) |
| 4S / 4 | 3.5 | 320 × 480 | 640 × 960 | 3:2 | @2x | 20 | 不支持(最高系统低于 iOS 11) |
- 上表按标准显示模式、普通全屏 UIKit App、竖屏显示状态栏、横屏由系统隐藏状态栏统计;开启“放大显示”、隐藏状态栏或出现通话等系统界面时,返回值可能变化。
- 带 Home Indicator 的机型,竖屏
bottom通常为 34;iOS 26 横屏实测为 20,iOS 18 及更早版本通常为 21。XS/XR/X 无法升级 iOS 26,表中保留 21。 - Apple 当前布局规格将 12/13 mini 标为 360 × 780pt;旧系统或兼容模式可能返回 375 × 812pt。旧款 Plus 的 UIKit 倍图与原生缩放比例也可能不同,应以运行时结果为准。
- 表格适合查阅和测试,不适合在业务代码中按机型硬编码;应始终读取当前窗口、视图的
safeAreaInsets和statusBarFrame。
参考链接
本文由作者按照 CC BY 4.0 进行授权