我开发了一个没有autoLayout
或interface-builder
的应用,所有这些都是通过代码完成的。除了iPhones
之外,它在所有iPhone X
中运行正常,其中顶部栏位于中间的新黑色物体下。
可以通过代码获得那个高度,所以我可以将我的Navigationbar
高度调低,所有运行正常吗?
我看到的解决方案,他们使用自动布局。
我只是想把距离调低......
答案 0 :(得分:15)
在我的Swift应用程序中,我使用
获取状态栏的frame
斯威夫特:UIApplication.shared.statusBarFrame
Objective-C:[UIApplication sharedApplication].statusBarFrame
那是CGRect
,所以你可以通过size.height
来获得它的高度。所以,总而言之,你可以在Objective-C中做到这一点:
[UIApplication sharedApplication].statusBarFrame.size.height
答案 1 :(得分:6)
您可以随时通过以下方式获取状态栏高度,无论是否隐藏状态栏:
UIApplication.shared.keyWindow!.safeAreaInsets.top
和主屏幕指示灯
UIApplication.shared.keyWindow!.safeAreaInsets.bottom
如果它的格局将改变
和safeAreaLayoutGuide
也有