Как очистить выбор в 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)
}
// Теперь перезагрузите вид таблицы --- Готово