在过去的 2 个小时里,我一直在尝试让按钮的 ScrollView 工作,更具体地说,使用 GeometryReader 来确定其大小的按钮的 ScrollView。此外,所有这些都放置在 NavigationView 中。
有奇怪的行为,比如按钮没有执行它的动作,没有注册点击,当放置在一个 VStack 中的 HStack 中以获得类似网格的结构时,我只能点击具有预期效果的第一行按钮,其他按钮都是反应迟钝。如何正确构建所有这些视图?
在过去的 2 个小时里,我一直在尝试让按钮的 ScrollView 工作,更具体地说,使用 GeometryReader 来确定其大小的按钮的 ScrollView。此外,所有这些都放置在 NavigationView 中。
有奇怪的行为,比如按钮没有执行它的动作,没有注册点击,当放置在一个 VStack 中的 HStack 中以获得类似网格的结构时,我只能点击具有预期效果的第一行按钮,其他按钮都是反应迟钝。如何正确构建所有这些视图?
下面的代码对我有用:
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 中,否则会出现奇怪的行为(在我的情况下,我只能点击具有预期效果的第一行按钮)。希望这对某人有帮助!