0

我有一个 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)")
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
4

0 回答 0