Перезагрузить только раздел таблицы при расширении или нет - Swift - PullRequest
0 голосов
/ 28 марта 2020

Я сделал так, чтобы свернуть раздел с ячейками, но в конце я перезагружаю весь просмотр таблицы и не хочу этого. То, что я хочу, это перезагрузить только раздел, когда он расширяется или нет (вставка / удаление).

Вот метод, который я использую, чтобы вставить или удалить строки моего раздела:

func settingsViewTapped(view: SettingsCellView, section: Int) {
    var indexPaths = [IndexPath]()
    for row in self.settingsTrainings[section].workouts.indices {
        let indexPath = IndexPath(row: row, section: section)
        indexPaths.append(indexPath)
    }

    let isExpanded = self.settingsTrainings[section].isExpanded
    self.settingsTrainings[section].isExpanded = !isExpanded

    if isExpanded {
        tableView.deleteRows(at: indexPaths, with: .none)
        tableView.reloadData()
    } else {
        tableView.insertRows(at: indexPaths, with: .none)
        tableView.reloadData()
    }
}

1 Ответ

0 голосов
/ 29 марта 2020

Вы должны обернуть deleteRows и insertRows с beginUpdates и endUpdates

tableView.beginUpdates()
tableView.insertRows(at: indexPaths, with: UITableViewRowAnimation.top)
tableView.endUpdates()
...