В моем приложении UITableView
, когда пользователь проводит пальцем, чтобы удалить элемент, приложение удаляет не только выбранный элемент, но и другие связанные элементы в источнике данных, которые могут отображаться или не отображаться на экране в данный момент. Сначала я подумал, что мне нужно перебрать все ячейки в UITableView
, чтобы получить ячейки для этих элементов данных, и вызвать UITableView.deleteRows()
, чтобы удалить их. Но быстрый поиск по SO показал, что невозможно перебрать все ячейки из-за того, как работает UITableView
.
Так что мне интересно, как правильно синхронизировать UITableView
с источником данных в моем случае? Можно ли просто повторять UITableView.visibleCells
? Но если я правильно понимаю, UITableView
выполняет предварительную выборку (я имею в виду, что он получает больше элементов, чем необходимо отобразить на экране) по соображениям производительности, так что, если элемент данных, который я удаляю, входит в число элементов, которые предварительно выбираются UITableView
но еще не показаны? Должен ли я позвонить UITableView.deleteRows()
, чтобы удалить их тоже? Но как я могу получить эти клетки?