我有一个 2d ScrollView(垂直/水平)包装在 ScrollViewReader 中,并由两个 ForEachs 填充......直接来自书中。
现在按钮不会滚动到指定的项目,但奇怪的是总是滚动到行的两倍,即 10_10 滚动到 20_10,20_20 滚动到 40_20,40_40 滚动出界?
我错过了什么?是 macOS 12.2beta 的问题吗?
struct ContentView: View {
var body: some View {
ScrollViewReader { scrollProxy in
VStack {
HStack {
Button("10-10") {
withAnimation {
scrollProxy.scrollTo("10-10", anchor: .center)
}
}
Button("20-20") {
withAnimation {
scrollProxy.scrollTo("20-20", anchor: .center)
}
}
Button("40-40") {
withAnimation {
scrollProxy.scrollTo("40-40", anchor: .center)
}
}
}
ScrollView([.vertical, .horizontal]) {
VStack {
ForEach(0..<50) { row in
HStack {
ForEach(0..<50) { col in
Rectangle()
.fill(.gray)
.overlay(
Text("\(row)-\(col)").font(.caption)
)
.frame(width: 50, height: 50)
.id("\(row)-\(col)")
}
}
}
}
}
}
}
}
}