标签列表视图单选 swift 4.



我尝试使用TagListView https://github.com/ElaWorkshop/TagListView 的cocoa pod创建标签。 我使用 TagListViewDelegate 接收标记按下的事件并使用isSelected属性。对于未选择的标签,我设置为橙色,而选择的标签设置为白色。每次用户单击未选中的标签时,标签将变为白色(变为选中状态(。默认情况下,用户可以选择多个标签。我想要实现的是,用户一次只能选择一个标签(变成白色(。这意味着,其他标签将保持未选中状态(变为橙色(。下面是我已经做的代码:

func tagPressed(_ title: String, tagView: TagView, sender: TagListView) {
// print("Tag pressed: (title), (sender)")
if tagView.isSelected == false {
tagView.isSelected = true
}
}

这个快速简便的解决方案不仅仅是一个,无需更新原始 TagListView 类以支持一个选择

// MARK: TagListViewDelegate
func tagPressed(_ title: String, tagView: TagView, sender: TagListView) 
{
print("Tag pressed: (title), (sender)")
// loop over all tags and set selected to false
sender.tagViews.forEach {$0.isSelected = false}
tagView.isSelected = !tagView.isSelected
}