我有一个非常简单的 SwiftUI 视图,其中列出了一堆文本:
extension String: Identifiable {
public var id: String { return self }
}
struct ContentView: View {
var items: [String] = (0..<1000).map { $0.description }
var body: some View {
List(items) { str in
HStack {
Text(str)
}
}
}
}
这段代码似乎工作正常,并为我提供了流畅的滚动性能。
如果我更改它以使 HStack 位于水平滚动的 ScrollView 内:
var body: some View {
List(items) { str in
ScrollView(.horizontal) {
HStack {
Text(str)
}
}
}
}
当我在列表中上下滚动时,性能受到了巨大的影响,内存似乎无限增长。内存调试器中没有任何泄漏。
我想知道是否有人知道为什么性能影响如此之大,以及是否有任何解决方法。
更新:
HStack 和 Text 似乎与问题无关,即使是 scrollView 内的 Spacer 也会触发问题。
List(items) { _ in
ScrollView(.horizontal) {
Spacer()
}
}