在iOS 12中,在我使用[[UINavigationBar appearance] setBackgroundColor...]
为所有NavBar设置应用程序范围的背景色之前。
在iOS 13中,我想在支持黑暗模式时做同样的事情。在应用程序Asset Catalog中,我定义了一种名为NavBarBackground
的颜色,并同时指定了Any appearance
和Dark appearance
的颜色。
如果禁用了暗模式,则使用正确的Any
颜色。但是,启用黑暗模式后,指定的Dark
颜色将被忽略,所有NavBar都将显示为纯黑色...
但是,如果我在IB中将NavBar的背景色手动设置为NavBarBackground
,则该NavBar在正常和黑暗模式下都会显示正确的颜色。
那么,如何将[UINavigationBar appearance]
与深色模式和命名颜色一起使用?
答案 0 :(得分:1)
您可以使用iOS 13的新外观API: https://developer.apple.com/documentation/uikit/uinavigationbarappearance
示例:
let style = UINavigationBarAppearance()
style.backgroundColor = .red
style.barTintColor = UIColor(named: "my_colour")!
navigationController?.navigationBar.standardAppearance = style
navigationController?.navigationBar.scrollEdgeAppearance = ...
navigationController?.navigationBar.compactAppearance = ...