SwiftUI ScrollView,GeometryReader和Button =奇怪的行为

时间:2020-05-01 20:39:10

标签: ios swiftui ipados geometryreader

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

有奇怪的行为,例如按钮没有执行其动作,未注册水龙头,并且当放置在VStack中的网格状结构的HStack中时,我只能轻按具有预期效果的第一行按钮,其他按钮都没有响应。如何正确构造所有这些视图?

1 个答案:

答案 0 :(得分: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中 ,否则将出现奇怪的行为(在我的情况下,我只能点击具有预期效果的第一行按钮)。希望这对某人有帮助!