我正在尝试在 ForEach 循环中应用删除线到任何被点击的文本项目:
struct BrandListView: View {
@ObservedObject var list: ListObject
var body: some View {
ScrollView {
VStack {
ForEach(list.items) { items in
Text(item.name)
.strikethrough(//?)
.onTapGesture(perform: {
// on tap, apply strikethrough only to this item.
})
}
}
}
}
}
有没有一种使用@State变量来应用条件的简单方法,以跟踪何时应用strikethrough()或不应用? 我认为唯一的方法是将一个属性放入listObject中,以跟踪它是否被删除,并使用该属性将true / false应用于strikethrough()修饰符。但那似乎像是意大利面条代码?