import SwiftUI
import Charts
struct ContentView: View {
@State private var numbers = (0..<100)
.map { _ in Double.random(in: 0...100) }
@State private var scrollPosition = 0
@State var xAxisRange: ClosedRange<Int> = 0 ... 50
var body: some View {
Chart(Array(zip(numbers.indices, numbers)), id: .1) { index, number in
LineMark(
x: .value("Index", index),
y: .value("Number", number)
)
}
.chartScrollableAxes(.horizontal)
.chartXScale(domain: xAxisRange)
.chartScrollTargetBehavior(
.valueAligned(
unit: 5,
majorAlignment: .page
)
)
.chartScrollPosition(x: $scrollPosition)
.onChange(of: scrollPosition) {
print(scrollPosition)
if scrollPosition > 30 {
xAxisRange = 0 ... 100
}
}
}
}
This is sample code, I’m trying to load a dynamic data like pagination in Chart but while I’m updating the x axis scroll gets disturb and it will move far long from current data.
Whatever I am trying is this possible in SwiftUI chart?