iPhone X的顶部高度是多少?

IKK*_*KKA 54 xcode ios iphone-x

我想知道iPhone X顶部条的确切高度.你能不能提一下iPhone X的状态栏和导航栏高度. 请帮帮我.

在此输入图像描述

Anb*_*hik 85

然而,iPhone X上的显示屏比4.7英寸显示屏高出145pt,因此内容的垂直空间大约增加了20%.

有关更多信息,您可以从apple1here2获取苹果文档中的 HIG for iphone X 和详细说明

在此输入图像描述

状态栏高度

以前20pt,现在44pt

由于显示器顶部的传感器,新状态栏分为两部分.如果您的UI正在使用该空间做一些特殊的事情(之前是20pt高,现在是44pt),因为它在iPhone X上会更高.确保它可以动态地改变高度.一个好处是,如果用户打电话或使用导航应用程序,高度将不会改变,这在以前的其他iPhone上就是这种情况.

在此输入图像描述

肖像

导航栏高度为正常88和大标题时间140

  • 标准名称 - 44pt(状态栏为88pt)
  • 大标题 - 140pt
  • 底栏 - 34pt

景观

  • 标准标题 - 32pt
  • 底栏 - 21pt

  • 错字:导航条高度正常为44pt.如果您包含状态栏,那么它是88pt. (6认同)

ske*_*ell 26

导航条像往常一样44pt(没有大标题时),状态栏从20pt增加到44pt.您可以在调试器中输入以验证它:

在此输入图像描述

  • 为什么要截图?-.- (5认同)

Pao*_*olo 13

您可以通过在包含的视图控制器中使用来safeAreaInsets以编程方式获取导航栏的高度view:

let navBarHeight = view.safeAreaInsets.top
Run Code Online (Sandbox Code Playgroud)

这将考虑它是否是一个大的标题导航栏,以及是否附加了搜索栏.

有关更多信息,请参阅safeAreaInsets文档.


小智 10

您可以使用导航栏的.frame属性来计算顶部栏区域的总高度:

ObjC:

CGRect navbarFrame = self.navigationController.navigationBar.frame;
float topWidth  = navbarFrame.size.width;
float topHeight = navbarFrame.size.height + navbarFrame.origin.y;
Run Code Online (Sandbox Code Playgroud)

我想这有点像作弊,但是添加导航栏的高度及其y原点似乎无论设备如何都能给出正确的总高度.


And*_*kyi 10

您可以通过下一个方式获得它(Swift 3):

let barHeight = navigationController?.navigationBar.frame.maxY
Run Code Online (Sandbox Code Playgroud)

要获得正确的值,请确保在设置后调用它 prefersLargeTitles

navigationController?.navigationBar.prefersLargeTitles = false
Run Code Online (Sandbox Code Playgroud)