iPhone X状态栏高度

我已经开发了一个没有autoLayoutinterface-builder的应用程序,所有的代码。 它在除了iPhone X之外的所有iPhones上都能正常运行,其中顶部酒吧位于中间的新黑色物品之下。

有可能通过代码获得这个高度,所以我可以把我的Navigationbar高度降低,所有运行正常?

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

我只是想要得到的距离转移下来..

在我的Swift应用程序中,我得到了状态栏的frame

Swift: UIApplication.shared.statusBarFrame

Objective-C: [UIApplication sharedApplication].statusBarFrame

这是一个CGRect ,所以你可以通过做size.height来获得它的高度。 所以,完全可以在Objective-C中做到这一点:

 [UIApplication sharedApplication].statusBarFrame.size.height 

您可以随时通过以下方式获取隐藏状态栏的状态栏高度:

 UIApplication.shared.keyWindow!.safeAreaInsets.top 

和主屏幕指示器

 UIApplication.shared.keyWindow!.safeAreaInsets.bottom 

如果它是风景,价值会改变

safeAreaLayoutGuide也在那里