1

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

    func tagPressed(_ title: String, tagView: TagView, sender: TagListView) {
   // print("Tag pressed: \(title), \(sender)")

    if tagView.isSelected == false {
        tagView.isSelected = true
    }

}
4

1 回答 1

4

无需更新原始 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
     }
于 2018-05-03T07:22:44.680 回答