ios - 不使用 UIApplication.shared 获取状态栏的大小

标签 ios swift

我正在制作一个 cocoa 库,我需要获取状态栏高度,我使用以下代码:

let statusBarHeight = UIApplication.shared.isStatusBarHidden ? CGFloat(0) : UIApplication.shared.statusBarFrame.height

我在另一个项目中使用 lib,一切正常,但如果我在应用程序扩展中使用 Lib,我得到:

'shared' is unavailable: Use view controller based solutions where appropriate instead

如何测试我是否在扩展内?或者如何在不使用共享的情况下获得状态高度?

谢谢!

最佳答案

如果您的目标是 iOS 11,请使用 View Controller 的 topLayoutGuide.length,或 View Controller 的 View 的 safeAreaInsets.top。这些值将考虑任何导航栏

关于ios - 不使用 UIApplication.shared 获取状态栏的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46774872/

相关文章:

iphone - 如何连接到需要用户名和密码的网站

ios - 从 namespace 生成 UUID?

swift - TableView heightForRowAtIndexPath 返回不正确的部分

php - 从 Laravel 为 iOS AvPlayer 提供 mp3 文件

ios - 为 AVPlayer 更新时 UISlider 跳转

ios - 从 ios 中的字典数组中的键获取数据

ios - 在同一个按钮中多次展开 - Swift

ios - 在我的 UITableView 中选择一个单元格时,选择似乎是随机的

swift - 当 CustomCell 标签值更改时如何更新 UITableView?

ios - 如何修复警告 init() 已弃用