Удаление разделов UITableView в сочетании с пользовательскими заголовками разделов UIViews = ошибка в коде Apple?
Я пытаюсь удалить раздел из UITableView, используя анимацию и пользовательский заголовок раздела таблицы UIViews.
Я использую...
//Deletion from my model done here (not shown) and then perform the deleteSections...
[self.tableView beginUpdates];
[self.tableView
deleteSections:[NSIndexSet indexSetWithIndex:index]
withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
Это прекрасно работает, когда я предоставляю заголовки разделов, используя
tableView:titleForHeaderInSection:
Но когда я предоставляю свой собственный заголовок, используя
tableView:viewForHeaderInSection:
Он удаляет нужный раздел и сдвигает все разделы под ним вверх. Я думаю, что происходит, когда он запрашивает новый пользовательский заголовок непосредственно перед анимацией удаления. Так что оживляет удаление нужного ряда +1.
Я заканчиваю с каждым разделом, сдвинутым вверх на один, и пустым разделом внизу.
Если я прокручиваю до конца таблицы, то возвращаюсь, разделы снова найдены правильно.
Я не думаю, что это то, что я могу исправить. Кажется, что проблема в удалении раздела обработки кода Apple с пользовательскими заголовками раздела. Обычно это хорошая идея, чтобы сначала винить себя:) . Я использую ту же логику, чтобы найти объект модели для моих пользовательских заголовков разделов по сравнению с заголовками разделов NSString, поэтому я не могу понять, как это может быть проблемой с моим кодом.
Кто-нибудь знает, как это исправить, или я должен переосмыслить свое использование разделов?
1 ответ
Я решил эту проблему, чтобы вызвать reloadSections:atIndexPath: это один из способов. Другие способы: перезагрузить таблицу (вы можете потерять анимацию), используя контроллер выборки и некоторые свойства в представлении заголовка. Когда вы удаляете один объект, контроллер выборки может перезагрузить разделы для вас.