SwiftUI 列表:设置部分 header 高度?
SwiftUI List: set section header height?
我有一个列表:
List {
ForEach(model.sections) { s in
Section(header: SectionView()) {
ForEach(items, id: \.self) { item in
Text(item.name)
.border(Color.mint)
}
}
}
}
.listStyle(.plain)
我有视图 SectionView
我想为 header 部分构建:
struct SectionView: View {
var body: some View {
GeometryReader { geo in
HStack {
Text("Section Header View")
.frame(width: geo.size.width, height: 60)
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.border(Color.green)
}
}
}
不幸的是 header 中的 SectionView
现在在细胞上流血。实际段header高度没有变化。如何设置自定义部分 header 高度?
在这种情况下您不应该使用 GeometryReader
,只需使用部分容器的高度,例如
struct SectionView: View {
var body: some View {
HStack {
Text("Section Header View")
}
.frame(maxWidth: .infinity, minHeight: 60) // << here !!
.border(Color.green)
}
}
给予
测试 Xcode 13 / iOS 15
我有一个列表:
List {
ForEach(model.sections) { s in
Section(header: SectionView()) {
ForEach(items, id: \.self) { item in
Text(item.name)
.border(Color.mint)
}
}
}
}
.listStyle(.plain)
我有视图 SectionView
我想为 header 部分构建:
struct SectionView: View {
var body: some View {
GeometryReader { geo in
HStack {
Text("Section Header View")
.frame(width: geo.size.width, height: 60)
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.border(Color.green)
}
}
}
不幸的是 header 中的 SectionView
现在在细胞上流血。实际段header高度没有变化。如何设置自定义部分 header 高度?
在这种情况下您不应该使用 GeometryReader
,只需使用部分容器的高度,例如
struct SectionView: View {
var body: some View {
HStack {
Text("Section Header View")
}
.frame(maxWidth: .infinity, minHeight: 60) // << here !!
.border(Color.green)
}
}
给予
测试 Xcode 13 / iOS 15