重现问题的前提条件:
- Xcode 11 beta + iOS 13(最新版本截至 2019 年 6 月 12 日)
- 导航栏为大文本模式
- 指定导航栏的颜色。
在真实设备中,状态栏将保持为白色,位于绿色导航栏上方。
我尝试过的解决方案:
- 恢复到 iOS12 会解决问题,但我们最终会遇到 iOS13...
- 禁用大文本模式将解决它...
- 隐藏状态栏会修复它,但会导致状态文本与导航栏项目重叠。
有什么想法吗?感谢任何帮助。
最佳答案
这里不需要技巧或技巧。关键是定义所需的外观并在导航栏的 standardAppearance
及其 scrollEdgeAppearance
上设置此值。我在我的整个应用程序的基本导航 Controller 子类的初始化中有以下内容:
if #available(iOS 13.0, *) {
let navBarAppearance = UINavigationBarAppearance()
navBarAppearance.configureWithOpaqueBackground()
navBarAppearance.titleTextAttributes = [.foregroundColor: UIColor.white]
navBarAppearance.largeTitleTextAttributes = [.foregroundColor: UIColor.white]
navBarAppearance.backgroundColor = <insert your color here>
navigationBar.standardAppearance = navBarAppearance
navigationBar.scrollEdgeAppearance = navBarAppearance
}
关于ios - iOS13状态栏背景色与大文本模式下导航栏不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56556254/