在SwiftUI中随机点击按钮上的手势响应
我的应用程序中有我的个人资料表单。在表单中我有一些按钮。其中5个按钮用于显示自定义下拉菜单,以选择Sax、血液、国籍等。然而,当我有时点击这些按钮时,它们会响应,但有时不会。例如,如果我点击它们10次,它们会响应2到3次。有时他们工作很长时间。我在这件事上花了好几天的时间,但在我的代码中找不到任何问题。有没有人面临过这样的问题?谁能找出真正的问题是什么。顺便说一下,我的应用程序中的所有其他按钮都工作得非常好 这是图片中红色矩形中前3个按钮的代码在SwiftUI中随机点击按钮上的手势响应,swiftui,gesture,Swiftui,Gesture,我的应用程序中有我的个人资料表单。在表单中我有一些按钮。其中5个按钮用于显示自定义下拉菜单,以选择Sax、血液、国籍等。然而,当我有时点击这些按钮时,它们会响应,但有时不会。例如,如果我点击它们10次,它们会响应2到3次。有时他们工作很长时间。我在这件事上花了好几天的时间,但在我的代码中找不到任何问题。有没有人面临过这样的问题?谁能找出真正的问题是什么。顺便说一下,我的应用程序中的所有其他按钮都工作得非常好 这是图片中红色矩形中前3个按钮的代码 import SwiftUI struct F
import SwiftUI
struct FormPartTwoView: View {
@Binding var gender: String
@Binding var blood: String
@Binding var nationality: String
@Binding var showingGenderPicker: Bool
@Binding var showingBloodGroupPicker: Bool
@Binding var showingNationalityPicker: Bool
@ObservedObject var userProfile = UserProfileViewModel()
@ObservedObject var userProfileUpdate = UserProfileUpdateViewModel()
var body: some View {
GeometryReader { geometry in
HStack {
Button(action: {
self.showingGenderPicker.toggle()
self.showingBloodGroupPicker = false
self.showingNationalityPicker = false
}) {
VStack {
TextField("Gender", text: self.$gender)
.padding(.horizontal)
.disabled(true)
}
.font(.system(size: 13))
.frame(height: 40)
.overlay(
RoundedRectangle(cornerRadius: 5)
.stroke(Color("Border2"), lineWidth: 1)
)
}
.buttonStyle(PlainButtonStyle())
Button(action: {
self.showingBloodGroupPicker.toggle()
self.showingGenderPicker = false
self.showingNationalityPicker = false
}) {
VStack {
TextField("Blood", text: self.$blood)
.padding(.horizontal)
.disabled(true)
}
.font(.system(size: 13))
.frame(height: 40)
.overlay(
RoundedRectangle(cornerRadius: 5)
.stroke(Color("Border2"), lineWidth: 1)
)
}
.buttonStyle(PlainButtonStyle())
Button(action: {
self.showingNationalityPicker.toggle()
self.showingGenderPicker = false
self.showingBloodGroupPicker = false
}) {
VStack {
TextField("Nationality", text: self.$nationality)
.padding(.horizontal)
.disabled(true)
}
.font(.system(size: 13))
.frame(height: 40)
.overlay(
RoundedRectangle(cornerRadius: 5)
.stroke(Color("Border2"), lineWidth: 1)
)
}
.buttonStyle(PlainButtonStyle())
}
.frame(width: geometry.size.width, height: 40)
}
}
}
struct FormPartTwoView_Previews: PreviewProvider {
static var previews: some View {
FormPartTwoView(gender: .constant(""), blood: .constant(""), nationality: .constant(""), showingGenderPicker: .constant(false), showingBloodGroupPicker: .constant(false), showingNationalityPicker: .constant(false))
}
}
这是第二个牵引按钮的代码:
import SwiftUI
struct FormPartFiveView: View {
@Binding var district: String
@Binding var upazila: String
@Binding var postcode: String
@Binding var showingUpazilaPicker: Bool
@Binding var showingDistrictPicker: Bool
@ObservedObject var userProfileUpdate = UserProfileUpdateViewModel()
var body: some View {
GeometryReader { geometry in
HStack {
Button(action: {
self.showingDistrictPicker.toggle()
self.showingUpazilaPicker = false
}) {
VStack {
Text("\(self.district == "" ? "District" : self.district)")
.foregroundColor(self.district == "" ? Color.gray : Color.black)
.padding(.horizontal)
}
.font(.system(size: 13))
.frame(width: geometry.size.width/3.2, height: 40)
.overlay(
RoundedRectangle(cornerRadius: 5)
.stroke(Color("Border2"), lineWidth: 1)
)
}
.buttonStyle(PlainButtonStyle())
Button(action: {
self.showingUpazilaPicker.toggle()
self.showingDistrictPicker = false
}) {
VStack {
Text("\(self.upazila == "" ? "Upazila" : self.upazila)")
.foregroundColor(self.upazila == "" ? Color.gray : Color.black)
.padding(.horizontal)
}
.font(.system(size: 13))
.frame(width: geometry.size.width/3.2, height: 40)
.overlay(
RoundedRectangle(cornerRadius: 5)
.stroke(Color("Border2"), lineWidth: 1)
)
}
.buttonStyle(PlainButtonStyle())
VStack {
TextField("Postcode", text: self.$postcode)
.padding(.horizontal)
}
.font(.system(size: 13))
.frame(width: 100, height: 40)
.overlay(
RoundedRectangle(cornerRadius: 5)
.stroke(Color("Border2"), lineWidth: 1)
)
}
.frame(width: geometry.size.width, height: 40)
}
}
}
struct FormPartFiveView_Previews: PreviewProvider {
static var previews: some View {
FormPartFiveView(district: .constant(""), upazila: .constant(""), postcode: .constant(""), showingUpazilaPicker: .constant(false), showingDistrictPicker: .constant(false))
}
}
为什么要在按钮中输入文本字段?我想这就是原因,所以只需将它们与文本标签和文本字段分开即可。我也尝试过仅使用文本视图。但还是一样的行为。