Подтвердить что ты не робот

Что именно вызывает reloadData?

При вызове reloadData в UITableView какие методы действительно вызывают?

[tableView reloadData];
4b9b3361

Ответ 1

Весь вид таблицы перезагружается, он вызывает cellForRowAtIndexPath, чтобы получить ячейки для всех ваших строк и разделов... делая это, он также вызывает метод numberOfSections метода tableView datasource и numberOfRows источника данных tableview и т.д. и т.д.

Ответ 2

Кроме того, для дальнейшего использования эта информация легко доступна в документации здесь. Копирование/вставка из документации Apple:

Вызовите этот метод, чтобы перезагрузить все данные, которые используются для построения таблицы, включая ячейки, верхние и нижние колонтитулы разделов, массивы индексов и т.д. Для эффективности в представлении таблицы отображаются только те строки, которые видны. Он корректирует смещения, если таблица сжимается в результате перезагрузки. Делегат представления таблицы или источник данных вызывает этот метод, когда он хочет, чтобы представление таблицы полностью перезагрузило свои данные. Он не должен вызываться в методах, которые вставляют или удаляют строки, особенно в блоке анимации, реализованном с вызовами beginUpdates и endUpdates

Ответ 3

Для принятия ответа очень хорошо. Но я хочу упомянуть, что все видимые клетки будут воссозданы. Обычно это неважно. Но если хранимое свойство tableViewCell содержит некоторые данные, может быть потеряно.

Например, нажмите кнопку на tableViewCell, чтобы запросить некоторые данные из Интернета и сохранить полученные данные в сохраненное свойство. Если вы reloadData, то извлеченные данные будут потеряны. Конечно, это не является правильным, на самом деле сделать запрос от tableViewCell. Но просто хочу объяснить эту ситуацию.