如何在iOS扩展中获取状态栏高度

8

我可以通过UIApplication在普通应用程序中获取状态栏,方法如下:

[UIApplication sharedApplication].statusBarFrame

但我们无法从扩展中访问UIApplication。有没有办法在共享中获取状态栏?


你为什么要获取状态栏高度呢?所有设备的状态栏高度都是20。 - Kiran Jasvanee
它需要什么样的扩展名来了解状态栏的框架? - holex
我正在使用高度来自定义视图控制器的动画。无论如何,我发现从扩展中获取状态栏没有意义,因此我必须修改动画内容。 - guhan0
2
Kiran,如果用户正在通话中,那么它不是20。有时它是0。 - crgt
2个回答

1
你可以使用safeAreaLayoutGuide来计算布局框架。 例如,

viewController.view.safeAreaLayoutGuide.layoutFrame.minY

0

备选方案:

如果您正在使用带有NavigationBar的视图控制器,则可以将其y位置视为StatusBar高度,以防safeAreaLayoutGuidewindow?.windowScene?.statusBarManager?.statusBarFrame.height选项不可用或无法使用。

let statusBarHeight = navigationController?.navigationBar.frame.origin.y ?? 0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接