当我在ios13 xcode11测试版上运行我的项目时。
[UIApplication sharedApplication].statusBarFrame.size.height
代码返回0。
我应该怎么做才能使它适应ios13?
发布于 2019-07-18 14:42:54
使用UIStatusBarManager获取iOS13中的statusBar高度:
UIStatusBarManager *manager = [UIApplication sharedApplication].keyWindow.windowScene.statusBarManager;
CGFloat height = manager.statusBarFrame.size.height;发布于 2019-08-21 13:50:30
SceneDelegate.swift文件
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
if let statusBarFrame = windowScene.statusBarManager?.statusBarFrame {
print(statusBarFrame)
}
}发布于 2019-09-23 06:02:42
正如彼得在Tamarous的回答中指出的那样,keyWindow属性已被弃用,但是假设您使用的是单个窗口,则可以选择使用:
CGSize statusBarSize = [UIApplication sharedApplication].windows.firstObject.windowScene.statusBarManager.statusBarFrame.size如果你需要访问第n个窗口,你可以用类似的方式来实现:
NSInteger i = 0;
CGSize statusBarSize = [UIApplication sharedApplication].windows[i].windowScene.statusBarManager.statusBarFrame.size;https://stackoverflow.com/questions/56832969
复制相似问题