[*] При прокрутке назад только 3 балла оставшиеся за кадром, вызывает нагрузку еще 10 исторических точек
[*] После загрузки позиция прокрутки перепадает в 3 -е положение нового набора данных вместо того, чтобы поддерживать текущее представление
Ожидаемое поведение:
Текущее представление пользователя не должно изменяться во время загрузки данных < /li>
< /ul>
Вот моя логика реализации с использованием некоторых макетных данных: < /p>
Код: Выделить всё
import SwiftUI
import Charts
struct DataPoint: Identifiable {
let id = UUID()
let date: Date
let value: Double
}
class ChartViewModel: ObservableObject {
@Published var dataPoints: [DataPoint] = []
private var isLoading = false
init() {
loadMoreData()
}
func loadMoreData() {
guard !isLoading else { return }
isLoading = true
let newData = self.generateDataPoints(
endDate: self.dataPoints.first?.date ?? Date(),
count: 10
)
self.dataPoints.insert(contentsOf: newData, at: 0)
self.isLoading = false
print("\(dataPoints.count) data points.")
}
private func generateDataPoints(endDate: Date, count: Int) -> [DataPoint] {
var points: [DataPoint] = []
let calendar = Calendar.current
for i in 0..
Подробнее здесь: [url]https://stackoverflow.com/questions/79461168/swift-charts-how-to-prevent-scroll-position-jump-when-loading-more-data-dynamic[/url]