我要更改onTapGesture上的“文本”项目的颜色,以模拟所选项目,当单击“文本”颜色应为“红色”而其他为“黑色”时。
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 10) {
ForEach(newsFeed.subcategoryListNews) { item in
Text(item.name)
.font(Font.custom("AvenirNextLTPro-Demi", size: 17))
.foregroundColor(Color.black)
.onTapGesture {
//Chage color and reset other Text, active red not active black
}
}
}
.padding(.top, 30)
.padding(.horizontal, 30)
}.padding(.bottom, 10)
非常感谢
答案 0 :(得分:1)
它需要符合您的商品类型Equatable
(如果尚未输入),则可以采用以下方法
@State private var selectedItem: <Item_Type_Here>? = nil
...
ForEach(newsFeed.subcategoryListNews) { item in
Text(item.name)
.font(Font.custom("AvenirNextLTPro-Demi", size: 17))
.foregroundColor(self.selectedItem == item ? Color.red : Color.black))
.onTapGesture {
self.selectedItem = item
}
}