SwiftUI:如何更改 NavigationView 的色调(背景颜色)?

Posted

技术标签:

【中文标题】SwiftUI:如何更改 NavigationView 的色调(背景颜色)?【英文标题】:SwiftUI: How do you change the tint color (background color) of a NavigationView? 【发布时间】:2019-06-08 04:42:23 【问题描述】:

我有一个带有列表的 NavigationView。如何更改 NavigationView 的颜色?

【问题讨论】:

【参考方案1】:

没有直接的 api(yet) 来执行此操作,但您可以查看调试视图层次结构,您会发现它是一个简单的 UINavigationBar,所有旧的解决方案都可以在这里工作太(还)。

struct ContentView: View 

init()
    UINavigationBar.appearance().backgroundColor = .white
    UINavigationBar.appearance().tintColor = .black
    UINavigationBar.appearance().barTintColor = .black
    UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor.red]
    UINavigationBar.appearance().largeTitleTextAttributes = [.foregroundColor: UIColor.red]

var body: some View 
    NavigationView 
        List 
            Text("1")
            Text("2")
            Text("3")
            Text("4")
        .navigationBarTitle(Text("Title With Red Color"))
    

【讨论】:

但是 UINavigationBar 的这个答案。仅针对 NavigationView 的问题。 我也遇到了这个问题,建议的答案没有解决。当我在 NavigationView 中嵌入一个列表时,我得到一个灰色的背景颜色。我宁愿没有那个灰色的背景。

以上是关于SwiftUI:如何更改 NavigationView 的色调(背景颜色)?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 SwiftUI 应用程序在 `NavigationView` 中的 `navigationBarItems` 内放置 `NavigationLink` 后向后导航时崩溃?

SwiftUI:如何更改子视图?

SwiftUI:如何使列表视图透明?如何更改列表视图背景颜色?

SwiftUI - 如何更改视图的层次位置?

值更改时如何在 UIKit 中更新 SwiftUI 视图?

SwiftUI 2.0如何更改表单部分的背景颜色[重复]