我开发了一个没有autoLayout
或interface-builder
的应用程序,都是通过代码。它在所有iPhones
中运行正常,除了顶部栏停留在中间新的黑色物体下方iPhone X
。
可以通过代码获得该高度,因此我可以将Navigationbar
该高度向下移动并且所有正常运行?
我看到的解决方案,他们使用自动布局。
我只是想得到距离来移动它..
在我的 Swift 应用程序中,我得到状态栏的frame
斯威夫特:UIApplication.shared.statusBarFrame
目标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