Ios SwiftUI 2个问题非常简单,关于搜索栏和列表的背景图片

Ios SwiftUI 2个问题非常简单,关于搜索栏和列表的背景图片,ios,swift,swiftui,Ios,Swift,Swiftui,SwiftUI非常简单的两个问题 1、如何使搜索栏粘贴到顶部,以便在使用向下滚动时仍能看到搜索栏 2、我使用列表和选项卡视图,我希望列表或VStack可能(或保存列表的东西)有一个背景图像(我的Assets.xcsets中已经有一个png)。我尝试了ZStack或.background(图像(“…”)),但都不起作用 这是图像,我希望背景是蓝绿色png图像 以下是选项卡视图的一个视图的代码: struct Discover: View { @State private var key

SwiftUI非常简单的两个问题

1、如何使搜索栏粘贴到顶部,以便在使用向下滚动时仍能看到搜索栏

2、我使用列表和选项卡视图,我希望列表或
VStack
可能(或保存列表的东西)有一个背景图像(我的Assets.xcsets中已经有一个png)。我尝试了
ZStack
.background(图像(“…”)
),但都不起作用

这是图像,我希望背景是蓝绿色png图像

以下是选项卡视图的一个视图的代码:

 struct Discover: View {
    @State private var keywords: String = ""
    var names = ["Yu Song", "ZhangYuan", "Kotoyama"]
    var body: some View {
        ZStack {
            List {
                HStack {
                    SearchBar(text: $keywords)
                    Image(systemName: "person")
                    Image(systemName: "bell")
                }
                ForEach(self.names.filter {
                    self.keywords.isEmpty ? true : $0.localizedCaseInsensitiveContains(self.keywords)
                }, id: \.self) { name in
                    Text(name)
                }
            }.background(Image("bg_global"))
        }.edgesIgnoringSafeArea(.all)
    }
}
以下是方便您使用的预览:

请注意,我已经在列表和VSrack中添加了
.background(图像(“bg_global”)
,但图像从未显示


非常感谢

要使背景可见,需要使列表及其内容透明。例如,可以在
init
中执行此操作

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

使用
VStack
而不是
ZStack
使
搜索栏粘到顶部。并确保
搜索栏
不是
列表
视图的一部分

struct ContentView:View{
init(){
UITableView.appearance().backgroundColor=.clear
UITableViewCell.appearance().backgroundColor=.clear
}
@国家私有变量关键字:String=“”
var名称=[“余松”、“张远”、“小山”]
var body:一些观点{
VStack{
//您的搜索栏视图
HStack{
垫片()
文本(“搜索”)
垫片()
}.padding().background(颜色.红色)
名单{
ForEach(self.names.filter{
self.keywords.isEmpty?true:$0.localizedCaseInsensitiveContains(self.keywords)
},id:\.self){name in
文本(名称)
}
}
}.offset(x:0,y:45).背景(颜色.黄色).边缘识别安全区域(.all)
}
}
由于您还希望在安全区域显示背景,因此需要使用
offset
按下视图