Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftUI:使插入列表背景透明?_Swiftui_Swiftui List - Fatal编程技术网

SwiftUI:使插入列表背景透明?

SwiftUI:使插入列表背景透明?,swiftui,swiftui-list,Swiftui,Swiftui List,如何将列表的灰色背景设置为完全透明,以使红色通过 struct ContentView:View{ var body:一些观点{ 导航视图{ ZStack{ 颜色:红色 .ignoresSafeArea() VStack{ HStack{ 文本(“假标题”) .font(.system(.largeTitle,设计:。四舍五入)) .fontWeight(.heavy) 垫片() 按钮(操作:{ //背景 },标签:{ 图像(系统名称:“gearshape.fill”) .font(.syst

如何将
列表的灰色背景设置为完全透明,以使红色通过

struct ContentView:View{
var body:一些观点{
导航视图{
ZStack{
颜色:红色
.ignoresSafeArea()
VStack{
HStack{
文本(“假标题”)
.font(.system(.largeTitle,设计:。四舍五入))
.fontWeight(.heavy)
垫片()
按钮(操作:{
//背景
},标签:{
图像(系统名称:“gearshape.fill”)
.font(.system(.title2))
})
}
.padding()
.navigationBarHidden(真)
名单{
文本(“一”)
文本(“两个”)
文本(“三”)
}
.listStyle(InsetGroupedListStyle())
}
}
}
}
}
在视图更改的init()中
UITableView.appearance
: 我们在SwiftUI中使用的大多数东西,例如List或NavigationView。它们不是纯SwiftUI,它们来自UIKit,因此我们使用UIKit代码类型来更改外观。如果您还记得,我们应该在UIKit中使用这样的代码。当我们在init中使用
UITableView
时,我们正在访问UITableViewUIKit类,这意味着此更改将应用于他们使用列表的项目中的任何视图

最好的方法是你正在做的事情,设置透明的颜色,然后在身体里改变SwiftUI的颜色!这是最方便的方法


struct ContentView:View{

init(){UITableView.appearance().backgroundColor=UIColor.clear}//是的!这很有效!我想知道你是否可以更新你的答案,简单解释一下为什么会这样,以及它实际上在做什么。我仍然在想一些SwiftUI的东西。谢谢!很抱歉我解释了,它不是纯SwiftUI,这就是为什么我们也应该使用一些UIKit代码的原因。
struct ContentView: View {
    
    init() { UITableView.appearance().backgroundColor = UIColor.clear }   // <<: here!
    
    var body: some View {
        NavigationView {
            ZStack {
                Color.red
                    .ignoresSafeArea()
                VStack {
                    HStack {
                        Text("Faux Title")
                            .font(.system(.largeTitle, design: .rounded))
                            .fontWeight(.heavy)
                        Spacer()
                        Button(action: {
                            // settings
                        }, label: {
                            Image(systemName: "gearshape.fill")
                                .font(.system(.title2))
                        })
                    }
                    .padding()
                    .navigationBarHidden(true)
                    
                    List {
                        Text("One")
                        Text("Two")
                        Text("Three")
                    }
                    .listStyle(InsetGroupedListStyle())
                }
            }
        }
    }
}