我有一个非常简单的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和文本似乎与问题无关,即使滚动视图中的空格键也会触发问题。
List(items) { _ in
ScrollView(.horizontal) {
Spacer()
}
}
答案 0 :(得分:0)
似乎至少有List,ScrollView,Form和NavigationView可能存在内存泄漏问题(请参阅this question)。该问题的作者向Apple(FB7318839)提出了反馈。我也鼓励您也这样做,希望这只是一个很快就会解决的错误。