导航视图背景颜色

Navigation View background Color

我正在尝试在我的 SwiftUi 列表上设置背景颜色,至于我的 post 此处:

我找到了一个解决方案,插入以下代码作为 init()

   init() {
        UITableView.appearance().backgroundColor = UIColor.clear
        UITableViewCell.appearance().backgroundColor = .clear
    }

我现在的问题是......一旦我插入导航 Link 背景 颜色又变白了。

如何设置NavigationView的颜色为.clear?我试过 .foregroundColor(.clear) 但注意到...

我想要的是没有白色背景的导航 link.. 像这样

但实际上它是这样的:

struct ContentView: View {

    var dm : DataManager

    init(dmi: DataManager) {
        self.dm = dmi
        UITableView.appearance().backgroundColor = UIColor.clear
        UITableViewCell.appearance().backgroundColor = .clear

    }
    var body: some View {

        ZStack{
            RadialGradient(gradient: Gradient(colors: [.orange, .red]), center: .center, startRadius: 100, endRadius: 470).edgesIgnoringSafeArea(.all)
                .overlay(
                    // NavigationView{
                    List{
                        ForEach(dm.vector, id: \.self) {  item in
                            Text(String(item))
                        }

                    }
                    //                    }
            )
        }

    }
}

很简单。我不建议你做,你最好按照苹果ui设计推荐

struct ContentView: View {

    init() {
        UITableView.appearance().backgroundColor = UIColor.clear
        UITableViewCell.appearance().backgroundColor = .clear

    }
    var body: some View {
        NavigationView {
            RadialGradient(gradient: Gradient(colors: [.orange, .red]), center: .center, startRadius: 100, endRadius: 470).edgesIgnoringSafeArea(.all)
                .overlay(
                    List{
                        Text("Alfa")
                        NavigationLink(destination: Text("LINKED")) {
                            Text("Label")
                        }

                    }.navigationBarTitle("Table")
            )
        }
    }
}

在视图调试器中查看,NavigationView 创建的视图层次结构似乎包括一个覆盖整个屏幕且无法修改的白色背景视图。

但是,我能够通过在导航堆栈中的各个视图上设置整个屏幕的背景来解决这个问题,它覆盖了导航视图创建的覆盖层哈哈。

下面是一个使用红色背景的例子:

struct ContentView: View {
  var body: some View {
    NavigationView {
      ZStack {
        Color.red.edgesIgnoringSafeArea(.all)
        ListView {          
          Text("Hello, world!")
        }
      }
    }
  }
}