Как очистить выбор в uitableview и показать его динамически?

Я выбрал некоторые tableView клетки и хранят его в UserDefaultsТакже показал, что я выбрал. Теперь, после добавления кнопки очистки и снятия выделения со всей выбранной строки и очистки выбранной строки array с последующим table reloadAll(), Это не отображается динамически? Как очистить выбор от действия кнопки и показать tableView без выбора сразу?

  @IBAction func clearSelection(_ sender: Any) {

//        self.sellerTableView.reloadInputViews()
//
//        self.sellerTableView.deselectRow(at: , animated: true)

Этот не работает!

        if let aRow = self.sellerTableView.indexPathForSelectedRow {
            self.sellerTableView.deselectRow(at: aRow, animated: true)
        }
//        self.userSelectedSellers.removeAll()

        self.sellerTableView.reloadData()
    }

2 ответа

Вот способ отменить выбор всех ячеек из tableView:

for cell in tableView.visibleCells {
    cell.setSelected(false, animated: true)
}

tableView.reloadData()

Как вы описали выше, у вас есть табличное представление с множественным выбором, вы должны сначала создать array который добавляет выбранные indexPaths, а затем вы пишете -

if indexArray.contains(indexPath.row) {
*// then set the table cell as selected*
}
else {
*// remove the table view selection*
}

Вы можете сделать ячейку таблицы выбрать и отменить выбор как ваше требование. как изменение цвета или поставить галочку.... любой думает..

затем вы делаете что-то подобное в didSelect Delegate -

func tableView (_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

if indexArray.contains(indexPath.row) {
        if let indexForRemove = indexArray.index(of: indexPath.row) {
            indexArray.remove(at: iindexForRemove)
        }
    }
    else {
        indexArray.append(indexPath.row)
    }

// Теперь перезагрузите вид таблицы --- Готово

Другие вопросы по тегам