Swift 整个列表可按,而不是按钮本身

Swift 整个列表可按,而不是按钮本身,swift,swiftui,Swift,Swiftui,在下面的for each循环中,我在水平堆栈中创建了一个按钮,以删除阵列中的该对象,但是整行不是可按下的按钮,这不是我正在寻找的设计。任何帮助都将不胜感激:) 为了解决这个问题,你们应该使用图像而不是按钮,因为列表使这个问题发生!列出所有行的应用按钮操作,而不仅仅是按钮 struct myView:View{ @EnvironmentObject var getFood:FoodAddModel @EnvironmentObject var person: UserIn

在下面的for each循环中,我在水平堆栈中创建了一个按钮,以删除阵列中的该对象,但是整行不是可按下的按钮,这不是我正在寻找的设计。任何帮助都将不胜感激:)


为了解决这个问题,你们应该使用图像而不是按钮,因为列表使这个问题发生!列出所有行的应用按钮操作,而不仅仅是按钮

struct myView:View{
    
    @EnvironmentObject var getFood:FoodAddModel
    @EnvironmentObject var person: UserInfoModel
    
    
    var unwrappedFoods:[AddedFoods]{
        getFood.foods ?? []
    }
    
    var body: some View{
        List{
            ForEach(Array(unwrappedFoods.enumerated()), id: \.1.id) { (index, obj) in

                HStack{
                    
                      Text(obj.name)
                        
                      Spacer()
                        
                      Image(systemName: "minus")
                            .frame(width: 40, height: 40, alignment: .center)   // <<: Here 
                            .background(Color.white)        // <<: Here 
                            .foregroundColor(.red)
                            .onTapGesture {                 // <<: Here
                            
                                getFood.foods?.remove(at: index)
                                person.personCurrentCalorieProgress.calorieProgress +=  obj.totalCals
     
                            }
                    }
                    
                    
                
            }
        }
    }
}
struct myView:View{
@EnvironmentObject变量getFood:FoodAddModel
@EnvironmentObject变量person:UserInfoModel
var unwrappedFoods:[添加的foods]{
getFood.foods???[]
}
var body:一些观点{
名单{
中的ForEach(数组(unwrappedFoods.enumerated()),id:\.1.id){(索引,obj)
HStack{
文本(对象名称)
垫片()
图像(系统名称:“减号”)

.frame(宽度:40,高度:40,对齐:.center)/
列表
的按钮行为似乎异常,作为一种解决方法,您可以使用带有值的修改器
plainButtonStyle()

导入快捷界面
结构myView:View{
var body:一些观点{
名单{

弗雷奇(0..看起来您有两个
hs图钉
包装您的物品--您可能可以删除一个。那么,在
文本
按钮
之间放置一个
间隔符
怎么样?如果这样做,整行看起来仍然可以单击吗?我现在无法尝试,但有必要在此处具体化此数组:
数组吗(unwrappedFoods.enumerated())
我刚刚解决了他问的问题,没什么了!也许他需要一些我们不知道的代码,它们都工作得很好,但是负号图像上的压力必须非常接近,这对用户来说是个问题。是否有某种属性使得可压区域的空间围绕图像?如果可能的话,我会清理一下ible@Matthew:我先给了一个框架,然后给了背景一个颜色,这样更容易点击!
struct myView:View{
    
    @EnvironmentObject var getFood:FoodAddModel
    @EnvironmentObject var person: UserInfoModel
    
    
    var unwrappedFoods:[AddedFoods]{
        getFood.foods ?? []
    }
    
    var body: some View{
        List{
            ForEach(Array(unwrappedFoods.enumerated()), id: \.1.id) { (index, obj) in

                HStack{
                    
                      Text(obj.name)
                        
                      Spacer()
                        
                      Image(systemName: "minus")
                            .frame(width: 40, height: 40, alignment: .center)   // <<: Here 
                            .background(Color.white)        // <<: Here 
                            .foregroundColor(.red)
                            .onTapGesture {                 // <<: Here
                            
                                getFood.foods?.remove(at: index)
                                person.personCurrentCalorieProgress.calorieProgress +=  obj.totalCals
     
                            }
                    }
                    
                    
                
            }
        }
    }
}
import SwiftUI

struct myView:View{
    var body: some View{
        List{
            ForEach(0..<5) { (index) in
             
                HStack{
                    Text("\(index)")
                    Spacer()
                    Button(action: {
                        print("foo")
                    }) {
                        Image(systemName: "minus").foregroundColor(.red)
                    }.buttonStyle(PlainButtonStyle())
                }
            }
        }
    }
}