【发布时间】:2020-10-30 23:34:56
【问题描述】:
在我的 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
}
}
}
逻辑工作,但用户可以点击多行并选择多个,在我的项目中,我必须将复选标记只放在一行上,一次不能超过一个。
有什么办法可以避免多选。
非常感谢
【问题讨论】:
-
有一个和你类似的系统,但是我的 onTapGesture 只对文本的点击有反应,在 Spacer 区域,你有这种问题吗?
标签: arrays swift xcode list swiftui