SwiftUI - 如何设置列表背景为清晰?

lif*_*ott 5 beta colors ios swiftui xcode14

在 SwiftUI 中,似乎有两个选项可用于修改列表的颜色。

  1. 设置列表的行背景颜色

    List {        
      ForEach(elements, id:\.self) { element in
      }.listRowBackground(Color.blue)
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将列表的配色方案设置为“浅色”或“深色”

     List {        
       ForEach(elements, id:\.self) { element in
       }
     }.colorScheme(.light) // .dark
    
    Run Code Online (Sandbox Code Playgroud)

设置其他属性,如背景、前景色等......似乎对感兴趣的视图颜色的影响为零。

目前,我确实将列表嵌入到导航视图中,如下所示:

NavigationView {
  List {        
    ForEach(elements, id:\.self) { element in
    }
  }.colorScheme(.light) // .dark
}
Run Code Online (Sandbox Code Playgroud)

但同样,没有颜色设置或视图层次结构设置似乎能够将背景视图设置为清晰/透明,因此主视图的颜色可以作为驱动程序。相反,从实验看来,我们被迫选择白色或黑色背景。这是 swift 或 Xcode 的 bug 还是有可用的解决方案?

在此输入图像描述

lif*_*ott 16

为了设置列表视图背景颜色,必须将属性设置scrollContentBackground为隐藏并将background属性设置为一种颜色

List {
  ForEach(elements, id:\.self) { element in 
  }.listRowBackground(Color.white)
}.scrollContentBackground(.hidden)
 .background(Color.blue)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述