Сбой таблицы при следующем изменении индекса перезагрузки - PullRequest
0 голосов
/ 28 декабря 2018

Мой табличный вид добавляет / удаляет ячейку в табличное представление на didselect строки, и во время этого, если происходит перезагрузка таблицы, который устанавливает новый набор данных внутри numberofrows в секции для массива, приводит к изменению всех индексов ячеек и сбоям приложения в cellForFow: atIndexPath: вызывая индексвыбранная строка в didselect изменилась.

Как я могу отложить новое событие перезагрузки таблицы до завершения следующей вставки ячейки:

[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:ipsArray 
                      withRowAnimation:UITableViewRowAnimationBottom];
[self.tableView endUpdates];

1 Ответ

0 голосов
/ 04 января 2019

Я решил свою проблему следующим образом: перезагрузите таблицу в следующем блоке UIView и используйте логическую переменную isTableReloading для отслеживания перезагрузки таблицы.

[UIView animateWithDuration:0.5 animations:^{
            weakSelf.isTableReloading = true;
            [weakSelf.tableView reloadData];
        } completion:^(BOOL finished) {
            weakSelf.isTableReloading = false;
        }];

В промежутке между перезагрузками, если пользователь касается ячейки таблицы, и isTableReloading == true, тогда отложите метод didSelect или проигнорируйте этот вызов, если ваше приложение разрешает.

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