SwiftUI-表格选择器和;按钮不共存
我创建了一个可重用组件,它在表单中有一个选择器、文本字段和按钮。但是,当按钮存在时,点击选择器字段不会进入选择器。而是执行按钮代码。TextField工作正常。如果我删除按钮代码,选择器将出现正确的行为。所以问题是如何在这个组件中同时包含这两个元素?请注意,预览添加了导航和表单,否则将来自父视图SwiftUI-表格选择器和;按钮不共存,swiftui,Swiftui,我创建了一个可重用组件,它在表单中有一个选择器、文本字段和按钮。但是,当按钮存在时,点击选择器字段不会进入选择器。而是执行按钮代码。TextField工作正常。如果我删除按钮代码,选择器将出现正确的行为。所以问题是如何在这个组件中同时包含这两个元素?请注意,预览添加了导航和表单,否则将来自父视图 var body: some View { HStack { if !showFee { Spacer()
var body: some View {
HStack {
if !showFee {
Spacer()
Button(action: {
withAnimation(.easeInOut(duration: 0.3)) {
self.showFee.toggle()
}
}) {
Image(systemName: "plus.circle")
.font(.largeTitle)
}
Spacer()
} else {
VStack(spacing:20) {
Picker(selection: $feeSelection, label: Text("Fee Type")) {
ForEach(0 ..< fees.count) {
Text(self.fees[$0])
}
}
TextField("Fee Amount: $", value: $feeAmount, formatter: NumberFormatter.currency)
.keyboardType(.decimalPad)
Divider()
Button(action: {
withAnimation(.easeInOut(duration: 0.3)) {
self.showFee.toggle()
}
}) {
Image(systemName: "trash.circle.fill")
.font(.largeTitle)
.foregroundColor(.red)
}
}
}
}
.padding()
}
}
struct FeeCell_Previews: PreviewProvider {
static var previews: some View {
NavigationView {
Form {
FeeCell()
}
}
}
}
var主体:一些视图{
HStack{
如果!showFee{
垫片()
按钮(操作:{
带动画(.easeInOut(持续时间:0.3)){
self.showFee.toggle()
}
}) {
图像(系统名称:“plus.circle”)
.font(.largeTitle)
}
垫片()
}否则{
VStack(间距:20){
选择器(选择:$feeSelection,标签:文本(“费用类型”)){
ForEach(0..<费用计数){
文本(自助费用[$0])
}
}
TextField(“费用金额:$”,值:$feeAument,格式设置器:NumberFormatter.currency)
.键盘类型(.decimalPad)
分隔器()
按钮(操作:{
带动画(.easeInOut(持续时间:0.3)){
self.showFee.toggle()
}
}) {
图像(系统名称:“垃圾桶.圆圈.填充”)
.font(.largeTitle)
.foregroundColor(.red)
}
}
}
}
.padding()
}
}
结构FeeCell\u预览:PreviewProvider{
静态var预览:一些视图{
导航视图{
形式{
费塞尔()
}
}
}
}
您可以将普通按钮样式应用于您的按钮。这将停止按钮的抽头覆盖整个单元格,形式如下:
Button(action: {}) {
Text("Button")
}
.buttonStyle(PlainButtonStyle())
天哪,我在这个问题上花了数不清的时间,只是为了让它成为这一行。我可以在睡梦中做很多UIKit,现在我像一个拥有SwiftUI的孩子一样感到谦卑。非常感谢。