首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何适配ios13状态栏?

如何适配ios13状态栏?
EN

Stack Overflow用户
提问于 2019-07-01 17:15:17
回答 4查看 7.1K关注 0票数 6

当我在ios13 xcode11测试版上运行我的项目时。

[UIApplication sharedApplication].statusBarFrame.size.height

代码返回0。

我应该怎么做才能使它适应ios13?

EN

回答 4

Stack Overflow用户

发布于 2019-07-18 14:42:54

使用UIStatusBarManager获取iOS13中的statusBar高度:

代码语言:javascript
复制
UIStatusBarManager *manager = [UIApplication sharedApplication].keyWindow.windowScene.statusBarManager;

CGFloat height = manager.statusBarFrame.size.height;
票数 2
EN

Stack Overflow用户

发布于 2019-08-21 13:50:30

SceneDelegate.swift文件

代码语言:javascript
复制
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)
    }
}
票数 0
EN

Stack Overflow用户

发布于 2019-09-23 06:02:42

正如彼得在Tamarous的回答中指出的那样,keyWindow属性已被弃用,但是假设您使用的是单个窗口,则可以选择使用:

代码语言:javascript
复制
CGSize statusBarSize = [UIApplication sharedApplication].windows.firstObject.windowScene.statusBarManager.statusBarFrame.size

如果你需要访问第n个窗口,你可以用类似的方式来实现:

代码语言:javascript
复制
NSInteger i = 0;
CGSize statusBarSize = [UIApplication sharedApplication].windows[i].windowScene.statusBarManager.statusBarFrame.size;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56832969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档