UINavigationBar外观+ iOS 13黑暗模式-如何设置应用程序的全彩色?

时间:2019-10-01 11:19:13

标签: ios ios13 ios-darkmode

在iOS 12中,在我使用[[UINavigationBar appearance] setBackgroundColor...]为所有NavBar设置应用程序范围的背景色之前。

在iOS 13中,我想在支持黑暗模式时做同样的事情。在应用程序Asset Catalog中,我定义了一种名为NavBarBackground的颜色,并同时指定了Any appearanceDark appearance的颜色。

如果禁用了暗模式,则使用正确的Any颜色。但是,启用黑暗模式后,指定的Dark颜色将被忽略,所有NavBar都将显示为纯黑色...

但是,如果我在IB中将NavBar的背景色手动设置为NavBarBackground,则该NavBar在正常和黑暗模式下都会显示正确的颜色。

那么,如何将[UINavigationBar appearance]与深色模式和命名颜色一起使用?

1 个答案:

答案 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 = ...