2017-10-16 192 views
3

我开发了一款不带autoLayoutinterface-builder的应用程序,全部由代码完成。它在所有的iPhones都可以运行,除了iPhone X,其中顶部酒吧停留在中间的新黑色物品下。iPhone X状态栏高度

有可能通过代码获得该高度,所以我可以将我的Navigationbar高度降低并且所有运行正常?

我看到的解决方案,他们使用自动布局。

我只是想获得距离来接班下来..

回答

9

在我斯威夫特的应用程序,我得到了状态栏的frame

斯威夫特:UIApplication.shared.statusBarFrame

的Objective-C: [UIApplication sharedApplication].statusBarFrame

这是一个CGRect,所以你可以通过对size.height做到这一点。

[UIApplication sharedApplication].statusBarFrame.size.height 
+0

感谢您的回复!有用。还有一件事,你怎么知道页脚安全高度?屏幕的曲线部分... – F79

+0

以及隐藏时如何获取状态栏高度? – F79

1

您可以随时带或不隐藏状态栏获取状态栏高度:所以,干脆,你可以在Objective-C这样做

UIApplication.shared.keyWindow!.safeAreaInsets.top 

,并在主屏幕指示器

UIApplication.shared.keyWindow!.safeAreaInsets.bottom 

如果它是景观价值将改变

safeAreaLayoutGuide也有