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())
}
}
}
}
}