1

在过去的 2 个小时里,我一直在尝试让按钮的 ScrollView 工作,更具体地说,使用 GeometryReader 来确定其大小的按钮的 ScrollView。此外,所有这些都放置在 NavigationView 中。

有奇怪的行为,比如按钮没有执行它的动作,没有注册点击,当放置在一个 VStack 中的 HStack 中以获得类似网格的结构时,我只能点击具有预期效果的第一行按钮,其他按钮都是反应迟钝。如何正确构建所有这些视图?

4

1 回答 1

1

下面的代码对我有用:

    var body : some View {
        NavigationView {
            VStack{
                GeometryReader{ geometry in
                    ScrollView {
                      // This is just how i'm setting up my buttons
                        VStack {
                            ForEach(0 ..< 2, id: \.self) { row in
                                HStack {
                                    ForEach(0 ..< 2, id: \.self) { column in
                                        TestButton()
                                    }
                                }
                            }
                        }
                    }
                }
            }.navigationBarTitle("")
            .navigationBarHidden(true)
        }
        .navigationViewStyle(StackNavigationViewStyle())
        .edgesIgnoringSafeArea(.all)
        .navigationBarTitle("")
        .navigationBarHidden(true)
    }

请注意,ScrollView 必须嵌套GeometryReader 中,否则会出现奇怪的行为(在我的情况下,我只能点击具有预期效果的第一行按钮)。希望这对某人有帮助!

于 2020-05-01T20:39:10.820 回答