TagListView одиночный выбор Swift 4 - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь создать тег, используя какао-стручок 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
    }

}

1 Ответ

0 голосов
/ 03 мая 2018

есть более чем быстрое и простое решение без обновления оригинальных классов 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
     }
...