文章

iOS 获取各种机型的 导航栏、状态栏、TabBar、安全区域高度

导航栏/Tarbar

导航栏高度固定都是 44pt,TarBar 高度固定都是 49pt。


状态栏和安全区域

iOS 控制器不管在竖屏时状态栏是否显示,在横屏时系统都是隐藏状态栏的,各家视频类 App 都是在横屏时添加自定义的状态栏,基本就是显示:时间+电量


安全区域的概念是刘海屏出来后才开始有的,目前所有 iPhone 机型的状态栏高度不固定,就算同样是刘海屏,状态栏高度也可能不一样;状态栏高度和安全区域顶部的高度也可能不一致,实际开发中要通过代码获取当前设备的状态栏高度。具体见下表:


手机机型屏幕尺寸(inch)屏幕宽高(pt)像素分辦率(px)屏幕比例倍图状态栏高度安全区域(竖屏/横屏)
16 Pro Max6.9956 x 4402868 x 132019.5: 9@3x54{62, 0, 34, 0} / {0, 62, 21, 62}
16 Pro6.3874 x 4022622 x 120619.5: 9@3x54{62, 0, 34, 0} / {0, 62, 21, 62}
16 Plus/15 Pro Max/15 Plus/14 Pro Max6.7932 x 4302796 × 129019.5: 9@3x54{59, 0, 34, 0} / {0, 59, 21, 59}
16/15 Pro/15/14 Pro6.1852 x 3932556 x 117919.5: 9@3x54{59, 0, 34, 0} / {0, 59, 21, 59}
14 Plus/13 Pro Max/12 Pro Max6.7926 x 4282778 x 128419.5: 9@3x47{47, 0, 34, 0} / {0, 47, 21, 47}
14/13 Pro/13/12 Pro/126.1844 x 3902532 x 117019.5: 9@3x47{47, 0, 34, 0} / {0, 47, 21, 47}
13 mini/12 mini5.4812 × 3752340 x 108019.5:9@3x50{50, 0, 34, 0} / {0, 50, 21, 50}
11 Pro Max/Xs Max6.7896 x 4142688 x 124219.5: 9@3x44{44, 0, 34, 0} / {0, 44, 21, 44}
11/XR6.1896 × 4142688 x 124219.5: 9@2x48{48, 0, 34, 0} / {0, 48, 21, 48}
11 Pro/Xs/X5.8812 x 3752436 x 112519.5: 9@3x44{44, 0, 34, 0} / {0, 44, 21, 44}
8 Plus/7 Plus/6S Plus/6 Plus5.5736 × 4142208 x 124216: 9@3x20-
SE 3/SE 2/8/7/6S/64.7667 × 3751334 x 75016: 9@2x20-
SE/5S/5C/54568 x 3201136 x 64016: 9@2x20-
4S/43.5480 x 320960 x 6403:2@2x20-


  • 竖屏时,安全区域的 top 不固定;left 和 right 都是 0;bottom 固定都是 34
  • 横屏时,安全区域的 top 固定为 0;left 和 right 都等于同手机竖屏时的 top;bottom 固定都是 21

参考链接

本文由作者按照 CC BY 4.0 进行授权