ScrollViewReader не выполняет прокрутку до правильной позиции в 2D ScrollView
Вот простой код SwiftUI, который создает большую сетку, которая помещается в 2D ScrollView. Щелчок по каждому элементу заставит ScrollView перейти к другому элементу, идентификатор которого на 50 больше, чем у выбранного элемента. ScrollView действительно прокручивается, но никогда не прокручивается до нужного. Я пробовал его на macOS и iOS, и ни один из них не работал. Я также пробовал использовать VStack и HStack вместо LazyVGrid, но все равно это не сработало. Как правильно этого добиться?
struct ContentView: View {
let columns = Array.init(repeating: GridItem(.fixed(80)), count: 20)
var body: some View {
ScrollView([.horizontal, .vertical]) {
ScrollViewReader { proxy in
LazyVGrid(columns: columns, spacing: 20) {
ForEach(0..<500) { i in
ZStack {
Circle()
.fill(Color.green)
.frame(width: 30, height: 30)
Text("\(i)")
}
.id("\(i)")
.onTapGesture {
proxy.scrollTo("\(i + 50)")
}
}
}
.padding(.horizontal)
}
}
.frame(minWidth: 500, minHeight: 300)
}
}