有没有一种方法可以将视图放在没有节的列表头中?表视图通常有一个名为tableHeaderView
的属性,它是整个表的标头,与节标头无关。
我正在尝试一个列表,并能够像UITableView
中的tableHeaderView
一样滚动它。
struct MyView: View {
let myList: [String] = ["1", "2", "3"]
var body: some View {
VStack {
MyHeader()
List(myList, id: .self) { element in
Text(element)
}
}
}
}
感谢Asperi。这是我对表头的最终解决方案。
struct MyHeader: View {
var body: some View {
Text("Header")
}
}
struct DemoTableHeader: View {
let myList: [String] = ["1", "2", "3"]
var body: some View {
List {
MyHeader()
ForEach(myList, id: .self) { element in
Text(element)
}
}
}
}
这里是一个简单的演示,演示了可能的方法,其他一切(如样式、大小、对齐、背景(都是可扩展的&可配置。
使用Xcode 11.4/iOS 13.4 进行测试
struct MyHeader: View {
var body: some View {
Text("Header")
.padding()
.frame(maxWidth: .infinity)
}
}
struct DemoTableHeader: View {
let myList: [String] = ["1", "2", "3"]
let headerHeight = CGFloat(24)
var body: some View {
ZStack(alignment: .topLeading) {
MyHeader().zIndex(1) // << header
.frame(height: headerHeight)
List {
Color.clear // << under-header placeholder
.frame(height: headerHeight)
ForEach(myList, id: .self) { element in
Text(element)
}
}
}
}
}