ScrollView 中的 SwiftUI 列表 [英] SwiftUI List inside ScrollVIew
本文介绍了ScrollView 中的 SwiftUI 列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将我的 List 放在 ScrollView 中,以便我可以一起滚动 List 行和标题.但是我发现 ScrollView 中的 List 不起作用.它什么也没显示.任何人都知道为什么会发生这种情况和(或)如何解决?
I want to make my List inside a ScrollView so that I can scroll List rows and headers together. But I found that List inside ScrollView isn't working. It shows nothing. Anyone know why this happens and(or) how to fix?
我应该同时使用它们.
- 我应该使用 ScrollView 以便在滚动行时也可以滚动标题(图像或文本).
- 我应该使用 List 来使用 .ondelete() 方法.
我的示例代码如下.
@State private var numbers = [1,2,3,4,5,6,7,8,9]
var body: some View {
ScrollView {
Text("header")
List {
ForEach(numbers, id: \.self) {
Text("\($0)")
}
.onDelete { index in
// delete item
}
}
}
}
推荐答案
可以,但在 List 使用全屏时不行.
It is possible but not when the List is using the full screen.
在代码示例中,我使用 GeometryReader 使列表尽可能大.但是您也可以删除 GeometryReader 并在 .frame() 中插入一个固定维度
In the code example I used GeometryReader to make the list as big as possible. But you can also remove the GeometryReader and just insert a fixed dimension into .frame()
struct ContentView: View {
@State private var numbers = [1,2,3,4,5,6,7,8,9]
var body: some View {
GeometryReader { g in
ScrollView {
Text("header")
List {
ForEach(self.numbers, id: \.self) {
Text("\($0)")
}
.onDelete { index in
// delete item
}
}.frame(width: g.size.width - 5, height: g.size.height - 50, alignment: .center)
}
}
}
}
这篇关于ScrollView 中的 SwiftUI 列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文