iPhone X的顶部高度是多少?

时间:2017-09-13 12:30:31

标签: ios xcode iphone-x

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

enter image description here

8 个答案:

答案 0 :(得分:76)

  

然而,iPhone X上的显示器 145pt 高于4.7"显示,为内容产生大约20%的额外垂直空间。

有关详细信息,您可以通过Apple documents获取iphone X的HIG,并在here1here2

中获取详细说明

enter image description here

状态栏高度

之前的20pt,现在44pt

  

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

enter image description here

<强>肖像

导航栏高度正常 88 且标题时间较长 140

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

<强>风景

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

答案 1 :(得分:25)

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

enter image description here

答案 2 :(得分:11)

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

let navBarHeight = view.safeAreaInsets.top

这将说明它是否是一个大的标题导航栏,以及是否附加了搜索栏。

有关详细信息,请参阅safeAreaInsets documentation

答案 3 :(得分:8)

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

ObjC:

CGRect navbarFrame = self.navigationController.navigationBar.frame;
float topWidth  = navbarFrame.size.width;
float topHeight = navbarFrame.size.height + navbarFrame.origin.y;

我认为这有点作弊,但添加导航栏的高度及其y原点似乎无论设备如何都能提供正确的总高度。

答案 4 :(得分:7)

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

let barHeight = navigationController?.navigationBar.frame.maxY

要获得正确的值,请确保在设置prefersLargeTitles

后调用它
navigationController?.navigationBar.prefersLargeTitles = false

答案 5 :(得分:4)

Apple Docs中没有规范

Apple Docs

根据Geoff Hackworth其88

导航标题类型:

  • 标准标题
  • 大标题

增加iOS 11中的导航栏

navigationController?.navigationBar.prefersLargeTitles = true

答案 6 :(得分:1)

如果您使用的是uiwindow,并且需要了解顶部栏的高度,则可以使用以下方法:

guard let keyWindow = UIApplication.shared.keyWindow else { return }

let navBarHeight = keyWindow.safeAreaInsets.top

print("navBarHeight:" , navBarHeight)

我从@Paolo's answer那里得到了主意

答案 7 :(得分:0)

如果您想知道哪里需要开始内容,请使用它

Resource<Company>