У меня есть настройка с разделами в UITableView, у всех из которых есть настраиваемый вид заголовка раздела.Только один раздел за раз может иметь видимые строки.
Чтобы создать эффект, который отображает другие строки ячеек, я в основном использую следующую функцию:
[self.tableView beginUpdates];
if ( sectionHeaderInsert >= 0 && sectionHeaderInsert <= numberOfSectionsInTableView ) {
[ticketReastepsScreenView.tableView insertRowsAtIndexPaths:indexPathsInsert withRowAnimation:UITableViewRowAnimationFade];
}
[self updateTmpSelectedNumberToCurrent];
if ( sectionHeaderRemove >= 0 && sectionHeaderRemove <= numberOfSectionsInTableView ) {
[ticketReastepsScreenView.tableView deleteRowsAtIndexPaths:indexPathsRemove withRowAnimation:UITableViewRowAnimationFade];
}
[self.tableView endUpdates];
Теперь то, что происходит в конценовый раздел «открывается», а старый «закрывается» часто, но: если у меня будет больше разделов, которые помещаются на экране, последний (частично) видимый раздел не будет перекрашиваться повторно - он полностью покрыт белым.
Все разделы спрашиваются о новых высотах, и я думаю, что он даже запрашивает новые представления (которые у меня есть в массиве).Затем представления просят [view setNeedsDisplay];
Когда я прокручиваю немного, чтобы последний заголовок раздела исчез, а затем снова прокручиваю его, он снова оживает и виден, пока я не изменю текущий открытыйраздел снова.
UPD : Это забавное поведение появляется только тогда, когда я делаю insertRow и deleteRow вместе.Я также могу просто закрыть один раздел (deleteRow), а затем в сенсорном действии раздела открыть новый (insertRow), и поведение будет другим.
Я также попытался создать endUpdates и beginUpdates между двумя действиями- нет положительного результата.
UPD2 : при переходе в конечную позицию (позиции хорошие) я вижу, что последний заголовок раздела отображается правильно, но затем исчезает (без анимации, простой простойбелый поверх него)