Обновление tableview без reloadData()

у меня есть таблица которая выводит случайный массив чисел при нажатии на кнопку. Мне нужно сделать так, что бы при каждом повторном нажатии кнопки, выводились новые значения в таблицу. С reloadData() все работает , но мне нужно сделать это без использования этого метода. Есть ли такая возможность? Заранее спасибо.


Ответы (2 шт):

Автор решения: Dmitry Serov

Такая возможность доступна начиная с iOS 13 с появлением UITableViewDiffableDataSource и NSDiffableDataSourceSnapshot.

До iOS 13 можно вычислять дифф ячеек вручную и обновлять таблицу частично через performBatchUpdates(_:completion:), однако в вашей ситуации, когда почти все ячейки и так обновятся, смысла в этом особого нет.

→ Ссылка
Автор решения: ivanvorobei

Да, вы можете пройтись по каждой видимой ячейке с помощью метода

tableView.visibleCells

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

→ Ссылка