如何解决Swiftui :有没有比我的方式更好的方法来实现单项和多项选择项?
下面的代码是多选和单选的逻辑。我这样做的方法是设置一些数组,然后通过 onTapGesture 将元素附加到其中。 我的问题是,这种实现是否可以接受?否则,有什么更好的方法吗?
谢谢
enum IconSelection {
case single,multi
}
@State var blocks: [Int] = [0,1,2,3,4]
@State var selections: [Int] = []
@State var enumSelected : IconSelection = .single
...
ScrollView(.horizontal){
HStack {
ForEach(self.blocks,id: \.self) { i in
vstack {
Block(id: i,isSelected: self.selections.contains(i),enumSelected: $enumSelected)
.onTapGesture {
switch enumSelected {
case .single :
if self.selections.count >= 1 {
self.selections.removeAll()
self.selections.append(i)
} else {
self.selections.append(i)
}
case .multi :
if self.selections.contains(i) {
self.selections.removeAll(where: { $0 == i })
} else {
self.selections.append(i)
}
}
}
.padding([.horizontal,.bottom],10)
}
.animation(.spring())
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。