Arrays SwuiftUI复选标记单行
在我的SwiftUi项目中,我在表单中列出了一些数据,我想让用户能够通过点击操作选择列表中的单个项目,但不能选择列表中的多个项目 在下面的代码中,我创建了一个列表:Arrays SwuiftUI复选标记单行,arrays,swift,xcode,list,swiftui,Arrays,Swift,Xcode,List,Swiftui,在我的SwiftUi项目中,我在表单中列出了一些数据,我想让用户能够通过点击操作选择列表中的单个项目,但不能选择列表中的多个项目 在下面的代码中,我创建了一个列表: List { ForEach(listOfCycle, id: \.self) {db in dbList(db: db, ciclo: self.$cycleSelected) } } 对于每一行,我都有一个视图dbList import SwiftUI struct dbList: View
List {
ForEach(listOfCycle, id: \.self) {db in
dbList(db: db, ciclo: self.$cycleSelected)
}
}
对于每一行,我都有一个视图dbList
import SwiftUI
struct dbList: View {
@State var db : Cycle
@Binding var ciclo : Cycle?
@State var cicloSelected : Bool = false
var body: some View {
HStack{
Text("Database:")
Spacer()
Text(db.idDatabaseAirports ?? "").foregroundColor(self.cicloSelected ? .green: .black).font(self.cicloSelected ? .title : .body)
if self.cicloSelected {
Image(systemName: "checkmark.circle")
}
}.onTapGesture {
self.cicloSelected.toggle()
self.ciclo = self.db
}
}
}
逻辑工作,但用户可以点击多行并选择多行,在我的项目中,我必须在一行上打勾,但不能超过一行
有什么办法可以避免多重选择吗
非常感谢提供的代码是不可测试的,所以只有想法不清晰,但应该清楚 注意:确保循环是平衡的
提供的代码是不可测试的,所以只有想法不清晰,但应该清晰 注意:确保循环是平衡的
有一个与您相似的系统,但我的OnTapSirter仅对文本点击做出反应,在间隔区,您是否存在此类问题?有一个与您相似的系统,但我的OnTapSirter仅对文本点击做出反应,在间隔区,您是否存在此类问题?
struct dbList: View {
@State var db : Cycle
@Binding var ciclo : Cycle?
var body: some View {
HStack{
Text("Database:")
Spacer()
Text(db.idDatabaseAirports ?? "").foregroundColor(self.db == self.cyclo ? .green: .black).font(self.cicloSelected ? .title : .body)
if self.db == self.cyclo {
Image(systemName: "checkmark.circle")
}
}.onTapGesture {
self.ciclo = self.db
}
}
}