gpt4 book ai didi

arrays - SwiftUI 复选标记单行

转载 作者:行者123 更新时间:2023-12-04 13:13:12 24 4
gpt4 key购买 nike

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

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

List {
ForEach(listOfCycle, id: \.self) {db in
dbList(db: db, ciclo: self.$cycleSelected)
}
}

对于每一行,我都有 View 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

}
}
}

逻辑正常,但用户可以点击多行并选择多个,在我的项目中,我必须只在一行上打勾,当时不能超过一个。

有什么办法可以避免多重选择。

非常感谢

最佳答案

提供的代码是不可测试的,所以只是想法(粗糙,但应该很清楚)。

注意:确保 Cycle 是 Equatable

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

}
}
}

关于arrays - SwiftUI 复选标记单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62830684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com