全局更改 UINavigationBar 背景使用外观代理不起作用
Global changes UINavigationBar background using appearance proxy not working
我正在尝试使用 UINavigationBarAppearance 更改我的应用程序中所有 UINavigationBar 的某些属性。我在 AppDelegate.swift 中的 application(_:didFinishLaunchingWithOptions:)
中调用以下函数:
func customizeAppearance() {
let navBarAppearance = UINavigationBarAppearance()
navBarAppearance.configureWithDefaultBackground()
navBarAppearance.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
navBarAppearance.backgroundColor = UIColor.black
UITabBar.appearance().backgroundColor = UIColor.black
let tintColor = UIColor(red: 255/255.0, green: 238/255.0, blue: 136/255.0, alpha: 1.0)
UITabBar.appearance().tintColor = tintColor
}
我希望这会改变标题文本的背景颜色和颜色,但是当我 运行 应用程序时,只有文本颜色发生变化(UITabBar 也是如此)。有什么建议吗?
您应该在您的 UINavigationController 中使用这个 UINavigationBarAppearance
。如果你为 UINavigationController 使用全局外观,你应该使用 UINavigationBar.appearance()
而不是 UINavigationBarAppearance()
.
我正在尝试使用 UINavigationBarAppearance 更改我的应用程序中所有 UINavigationBar 的某些属性。我在 AppDelegate.swift 中的 application(_:didFinishLaunchingWithOptions:)
中调用以下函数:
func customizeAppearance() {
let navBarAppearance = UINavigationBarAppearance()
navBarAppearance.configureWithDefaultBackground()
navBarAppearance.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
navBarAppearance.backgroundColor = UIColor.black
UITabBar.appearance().backgroundColor = UIColor.black
let tintColor = UIColor(red: 255/255.0, green: 238/255.0, blue: 136/255.0, alpha: 1.0)
UITabBar.appearance().tintColor = tintColor
}
我希望这会改变标题文本的背景颜色和颜色,但是当我 运行 应用程序时,只有文本颜色发生变化(UITabBar 也是如此)。有什么建议吗?
您应该在您的 UINavigationController 中使用这个 UINavigationBarAppearance
。如果你为 UINavigationController 使用全局外观,你应该使用 UINavigationBar.appearance()
而不是 UINavigationBarAppearance()
.