UINavigationBar.appearance().isTranslucent 不工作

UINavigationBar.appearance().isTranslucent not working

当我使用这个时:

    UINavigationBar.appearance().backgroundColor = UIColor(named: "brown")

我得到一个导航栏,它具有正确的棕色并且是半透明的。

但我不希望它是半透明的,我只希望它是我的棕色。所以,我添加了另一行代码来更改外观以关闭半透明,而不是得到纯棕色,它只是给我默认的白色。

    UINavigationBar.appearance().backgroundColor = UIColor(named: "brown")
    UINavigationBar.appearance().isTranslucent = false

我做错了什么?

你完全找错了树。别管 isTranslucent!不要直接设置任何导航栏属性!使用 UINavigationBarAppearance 执行您的配置。例如:

let app = UINavigationBarAppearance()
app.configureWithOpaqueBackground()
app.backgroundColor = .brown
UINavigationBar.appearance().standardAppearance = app
UINavigationBar.appearance().scrollEdgeAppearance = app

您可以申请:

UINavigationBar.appearance().barTintColor = UIColor(named: "brown")

我认为在这种情况下仅更改 backgroundColor 是不够的。