Требуется ли вызывать UITableView.deleteRows () при удалении элементов данных, не отображаемых на экране? - PullRequest
0 голосов
/ 29 марта 2020

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...