Arrays SwuiftUI复选标记单行

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

在我的SwiftUi项目中,我在表单中列出了一些数据,我想让用户能够通过点击操作选择列表中的单个项目,但不能选择列表中的多个项目

在下面的代码中,我创建了一个列表:

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
            
        }
    }
}