Swift: возможно ли не перезагружать первую ячейку / строку при использовании tableView.reloadData ()? - PullRequest
0 голосов
/ 15 апреля 2020

Мне было интересно, можно ли перезагрузить tableView без перезагрузки первой ячейки / строки простым способом? Если так, как бы вы это сделали?

Ответы [ 2 ]

2 голосов
/ 15 апреля 2020
let itemArray:[Int] = []

for i in 1..<itemArray.count {
    let indexPath = IndexPath(item: i, section: 0)
    tableView.reloadRows(at: [indexPath], with: .fade)
}

Если ваша таблица в настоящее время не сгруппирована, лучший способ сделать это - добавить свою 1-ю ячейку в один раздел, а все остальные ячейки - в другой раздел. Затем вы можете легко перезагрузить все ячейки, кроме 1-й ячейки, используя

   //section 0 - your 1st cell
   //section 1 - other cells
    tableView.reloadSections([1], with: .none)
1 голос
/ 15 апреля 2020

Просто используйте метод reloadRows для перезагрузки вашего tableView.

var dataSource: [SomeData] = []

func reloadAllButFirstRow() {
    guard dataSource.count > 0 else { return }

    tableView.reloadRows(
        at: (1...dataSource.count).map { IndexPath(row: $0, section: 0) },
        with: .fade
    )
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...