如果我将多个水平ScrollView
放在List
中,则它们在滚动时会消失。这是一个示例:
以下是重现此问题的代码:
struct ContentView: View {
var body: some View {
List {
ForEach(0...100, id: \.self) { _ in
ScrollView(.horizontal) {
HStack {
Rectangle().frame(width: 100, height: 100)
Rectangle().frame(width: 100, height: 100)
Rectangle().frame(width: 100, height: 100)
}
}
}
}
}
}
我正在使用iOS 13.3。不幸的是,将帧添加到ScrollView
或HStack
并没有帮助。有人知道解决此问题的方法吗?
答案 0 :(得分:3)
这似乎是与项目重用有关的错误。您可以尝试修复在Lists和ScrollViews中设置id的问题。
List(array, id: \.self) { item in
Text("\(item)")
}.id(UUID().uuidString)
答案 1 :(得分:-1)
为防止块消失,您应该在VStack中包含ForEach循环。虽然,我不确定它们消失的原因。
List {
VStack {
ForEach(0...10, id: \.self) { _ in
ScrollView(.horizontal) {
HStack {
Rectangle().frame(width: 100, height: 100)
Rectangle().frame(width: 100, height: 100)
Rectangle().frame(width: 100, height: 100)
}
}
}
}
}