У меня действительно простое представление 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 не имеют значенияк проблеме, даже Spacer внутри scrollView вызовет проблему.
List(items) { _ in
ScrollView(.horizontal) {
Spacer()
}
}