如何在底部安全区域SwiftUI iOS 14的列表视图中添加背景色

时间:2020-10-29 16:11:03

标签: swift swiftui ios14 swiftui-list

我正在尝试使用列表视图将背景色添加到底部安全区域。 我知道如何为列表单元格添加背景色,但是它不适用于安全区域。有什么办法吗?

注意:我确实尝试过ZStack.edgesIgnoringSafeArea,但我需要使用 SwiftUI 2.0列表视图,而不是LazyVStackSwiftUI 1.0 (iOS 13) List View

List {
  ForEach(0..<100) { index in
     Text(String(index))
     .listRowBackground(Color.red.edgesIgnoringSafeArea(.all))
  }
}

enter image description here

1 个答案:

答案 0 :(得分:2)

您需要添加:

UITableView.appearance().backgroundColor = .clear

并将List放在ZStack中:

@main
struct TestApp: App {
    init() {
        UITableView.appearance().backgroundColor = .clear
    }

    var body: some Scene {
        WindowGroup {
            ZStack {
                Color.red.edgesIgnoringSafeArea(.all)
                List {
                    ForEach(0 ..< 100) { index in
                        Text(String(index))
                            .listRowBackground(Color.red)
                    }
                }
            }
        }
    }
}

您也可以直接设置颜色,而不用使用ZStack

UITableView.appearance().backgroundColor = UIColor(.red)

请注意,这将全局设置backgroundColor