如何在 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 { … }
}
我是 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 { … }
}