- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题
我有一个应用程序,它为不同的流程提供不同颜色的导航栏。一些导航栏有浅色背景,需要黑色状态栏文本。其他的导航栏较暗,需要白色的状态栏文本。
作为迁移到 iOS15 的一部分,我更新了我正在开发的应用程序以使用 UINavigationBarAppearance
导航栏样式的方法。
除了状态栏颜色之外,我可以像以前一样设置所有样式。
以前我一直在使用barStyle
导航栏上的属性设置状态栏文本颜色。
navigationBar.barStyle = .black
这在使用
UINavigationBarAppearance
时似乎不起作用.
override func viewDidLoad() {
super.viewDidLoad()
let navigationBar = navigationController?.navigationBar
// Style using old approach
navigationBar?.barTintColor = UIColor.purple
navigationBar?.titleTextAttributes = [.foregroundColor: UIColor.white]
// Use barStyle to set status bar text color to white
// This only work when using the old styling approach
navigationBar?.barStyle = .black
}
override func viewDidLoad() {
super.viewDidLoad()
let navigationBar = navigationController?.navigationBar
// Style nav bar using new Appearance API
let navBarAppearance = UINavigationBarAppearance()
navBarAppearance.backgroundColor = UIColor.purple
navBarAppearance.titleTextAttributes = [.foregroundColor: UIColor.white]
navigationBar?.standardAppearance = navBarAppearance
navigationBar?.scrollEdgeAppearance = navBarAppearance
// Use barStyle to set status bar text color to white
// This only work when using the old styling approach
navigationBar?.barStyle = .black
}
overrideUserInterfaceStyle
将状态栏文本设置为白色。 .要使状态栏文本变白,请设置
navigationBar.overrideUserInterfaceStyle = dark
但是,这会导致导航栏中按钮的菜单也处于黑暗模式,这不是我想要的。
preferredStatusBarStyle
强制使用黑色或白色文本。
最佳答案
我能够使用以下方法将状态栏文本设置为白色:
navController.navigationBar.overrideUserInterfaceStyle = .dark
请注意,此问题的创建者 Bencallis 警告说,此解决方案“导致导航栏中按钮的菜单也处于黑暗模式,这不是我想要的”。我不使用这样的菜单,所以这对我来说不是问题。也许它也不适合你。
关于iOS:使用 UINavigationBarAppearance 时指定状态栏文本颜色现在 barstyle 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69404806/
Xcode 版本 11.0 beta 5 (11M382q) 当我的 View Controller 之一是顶部 View Controller 时,我正在使用新的外观 API 为条形按钮项目着色。我
我有一个 iOS 应用程序,它使用自定义后 V 形作为导航栏中的后退按钮,并具有自定义背景颜色和阴影等。我想将背面指示器图像的颜色设置为默认蓝色以外的颜色。我如何使用新的 UINavigationBa
问题 我有一个应用程序,它为不同的流程提供不同颜色的导航栏。一些导航栏有浅色背景,需要黑色状态栏文本。其他的导航栏较暗,需要白色的状态栏文本。 作为迁移到 iOS15 的一部分,我更新了我正在开发的应
使用新的 UINavigationBarAppearance 时,似乎没有(或者至少没有明显的)方法来更新 View Controller 上的导航样式 apis .虽然这些 API 远远优于旧的样式
如何使用这个新对象来自定义 iOS 13 中的导航栏?我在 Objective-C 中尝试了以下代码,但它无法正常工作。当 View Controller 被推送或弹出到导航堆栈时,它只显示我的标题文
我有一个自定义颜色导航栏,我需要确保状态栏颜色设置为白色。在 iOS 13 之前,这很容易做到,这是 UIViewController 中的一个代码片段,它可以很好地完成这项工作: override
如果我像这样创建一个 UINavigationBarAppearance... let app = UINavigationBarAppearance(idiom: .pad) ...并为其配置背景颜
我是一名优秀的程序员,十分优秀!