【发布时间】:2019-11-01 05:22:37
【问题描述】:
随着 iOS 13 的到来,statusBar 的视图不再可以通过以下方式访问:
value(forKey: "statusBar") as? UIView
由于:
由于未捕获的异常而终止应用 'NSInternalInconsistencyException',原因:'应用程序调用 -statusBar 或 UIApplication 上的 -statusBarWindow:此代码必须更改,因为不再有状态栏或状态栏窗口。使用 窗口场景中的 statusBarManager 对象。'
但不清楚它应该如何用于更改颜色,因为keyWindow?.windowScene?.statusBarManager 似乎不包含任何相关内容。
我正在编译兼容(iOS 10,*)的代码,因此我打算继续使用 UIKit。
关于这个主题有什么想法吗?
【问题讨论】:
-
为什么要手动更改状态栏背景颜色?默认情况下,它将与您的应用程序的颜色相匹配。
-
这是一个旧版应用程序,其中包含自定义状态栏颜色,使其看起来与应用程序的其余部分不同
-
从来没有一种有效的方法来修改状态栏的颜色。这样的解决方案最终总是会失败。永远不要深入研究私有子视图结构。
-
@HugoAlonso 在这里查看我的答案:stackoverflow.com/questions/56556254/…
-
@rmaddy 您能否添加一个答案,说明不可能的事实以及最好的方法是什么,以便我可以将其设置为接受的方法?