SwiftUI:如何使列表视图透明?如何更改列表视图的背景色?

时间:2019-11-21 15:35:19

标签: swift list swiftui

在使用Swift UI创建列表的情况下,我的列表背景无法控制

enter image description here

好像没有一种“本机”方式来更改“列表”背景色的背景色。

如何使其透明?

(答案在下面)

1 个答案:

答案 0 :(得分:0)

所以!如果您想要透明列表,则需要:

  1. 这必须是Mac Catalyst项目(以便从该项目访问UIKit)

这必须足够;

swiftUI transparent list


如果您需要更改列表的背景颜色

  1. 这必须是Mac Catalyst项目(以便从该项目访问UIKit)
  2. 您必须添加此类更改所需的init

    import SwiftUI
    
    struct ContentView: View {
    
        //Solution is this method!
        init(){ 
            UITableView.appearance().backgroundColor = .red
            UITableViewCell.appearance().backgroundColor = .red
            UITableView.appearance().tableFooterView = UIView()
        }
    
    
        var body: some View {
            List() {
                Text("bla")
                Text("Bla")
            }.padding(.all, 200)
        }
    }
    

结果:

enter image description here


还可以使用其他方式发布一些列表...,例如:

非常接近List元素集,但具有水平列表(您可以将其修改为垂直变化):

       ScrollView(showsIndicators: false) {
            VStack{
                ForEach (filteredStatus) { status in
                    HStack{
                        Text(status)
                        Spacer()
                    }

                    .background(Color.red)
                }
            }
        }

但是此代码存在一些问题,例如您无法将ContextMenu添加到列表的每个元素中。因此,首选使用其他解决方案