如何在 Swift 中使列表完全透明?

how to make a list fully transparent in Swift?

我是 SwiftUI 初学者。我在 SwiftUI 应用程序中按照我的意愿制作列表时遇到问题!

这是我的代码:

struct Search: View {

@ObservedObject var webservice = Webservice()

@State var depart = "Gent-Sint-Pieters"

@State var destination = "Mechelen"

var body: some View {

    VStack (spacing: 20){

        Rechercher(depart: $depart , destination: $destination)       

        HStack {

                List(webservice.rides, id:\.id) { item in

                    Text("")

                }

                //.colorMultiply(Color(hue: 0.547, saturation: 0.071, brightness: 1.0))

            Spacer()
        }

        RechercheButton()
    }
}
}

我想要的是去除列表的白色背景。可能吗?

你能告诉我我需要在这段代码中添加什么才能得到这样的结果吗(每条灰色分隔线之间都有内容,列表没有背景色)?

谢谢!!

在view的init方法中设置clear color

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

那么,你的答案将如下所示

struct Search: View {

@ObservedObject var webservice = Webservice()

@State var depart = "Gent-Sint-Pieters"

@State var destination = "Mechelen"

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

var body: some View {

    VStack (spacing: 20){

        Rechercher(depart: $depart , destination: $destination)       

        HStack {

                List(webservice.rides, id:\.id) { item in

                    Text("")

                }

                //.colorMultiply(Color(hue: 0.547, saturation: 0.071, brightness: 1.0))

            Spacer()
        }

        RechercheButton()
    }
}
}

一个非常有用的模式是在视图主体中插入一个匿名块。请务必 return 之后的视图,例如

    var body: some View {
        let _ = {
        }()
        return Text("Cool")
    }

所以在你的情况下:

    var body: some View {
        let _ = {
            UITableViewCell.appearance().backgroundColor = UIColor.clear
            UITableView.appearance().backgroundColor = UIColor.clear
        }()
        return List { … }
    }

表格的其他有用内容:

    var body: some View {
        let _ = {
            // Removes space between nav bar bottom and top of form's table view top
            UITableView.appearance().tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: Double.leastNonzeroMagnitude))
            // Remove lines between rows
            UITableView.appearance().separatorColor = .clear
            // Set list row background color to clear
            UITableViewCell.appearance().backgroundColor = UIColor.clear
            // Set list background color to clear
            UITableView.appearance().backgroundColor = UIColor.clear
        }()
        return List { … }
    }