我有一个带有复选框、标题和计时器图标的项目列表:
![enter image description here](https://i.stack.imgur.com/EYuYN.png)
复选框是一个按钮,计时器图标是一个具有与其关联的独特操作的按钮。但是,如果我点击单元格内的任何位置,它会同时触发两个按钮操作。它们的目的是彼此独立运行以及单元中的水龙头独立运行。如何修改以下代码以保持操作分开?
List {
ForEach(tasks, id: \.self) { task in
HStack {
Button(action: {
task.isComplete.toggle()
try? self.moc.save()
print("Done button tapped")
}) {
Image(systemName: task.isComplete ? "square.fill" : "square")
}
.padding()
Text(task.name ?? "Unknown Task")
Spacer()
Button(action: {
print("timer button tapped")
}) {
Image("timer")
}
}
}
.onDelete(perform: deleteTask)
}
这是列表的默认行为,它标识行中的按钮并使整行处于活动状态,请改为使用.onTapGesture
如下
List {
ForEach(tasks, id: \.self) { task in
HStack {
Image(systemName: task.isComplete ? "square.fill" : "square")
.padding()
.onTapGesture {
task.isComplete.toggle()
try? self.moc.save()
print("Done button tapped")
}
Text(task.name ?? "Unknown Task")
Spacer()
Image("timer")
.onTapGesture {
print("timer button tapped")
}
}
}
.onDelete(perform: deleteTask)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)