У меня была аналогичная проблема и она была решена с использованием той же техники, что и Daan (насколько я могу судить).
В моем случае я использовал статический UITableView, в котором сначала были скрыты некоторые из его строк и секций (путем установки соответствующих возвращаемых значений от numberOfSectionsInTableView:
и tableView:numberOfRowsInSection:
). Я нажимал VC на стек nav, чтобы собрать дополнительные данные, которые затем использовал бы, чтобы заполнить скрытые разделы tableview, вызвав reloadData в tableview, чтобы обновить его.
Это отлично работало в iOS7, но в iOS6 таблица contentSize.height
никогда не изменялась от своего начального значения (218 баллов) до более высокого значения (504 балла), полученного из добавления новых разделов. Таким образом, вы не можете прокручивать содержимое в нижней части таблицы. Попытка принудительного использования contentSize не работала, так как она была немедленно восстановлена до 218.
Изменение таблицы contentOffset
таблицы позволило мне прокрутить до нижней части содержимого, но если вы нажмете UITextField в последней ячейке, он будет бить когда клавиатура была показана.
Наконец-то я смог придумать решение, которое работало как в iOS6, так и в iOS7 без проблем. Я использовал старый beginUpdates
/вставлять и удалять строки и разделы/endUpdates
методы UITableView, следующим образом:
// change the tableView's data source to reflect insertions/deletions
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:@[ [NSIndexPath indexPathForRow:1 inSection:0] ] withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView insertSections:[NSIndexSet indexSetWithIndexesInRange:NSRangeFromString(@"1,3")] withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView endUpdates];
Как вы можете видеть, в данном конкретном случае я должен был удалить строку из первого (и только) и добавьте три раздела в конец таблицы.
Вставить ur код тоже .. :) –
Я предполагаю, что либо ваш '- numberOfRowsInSection:', либо '- numberOfSections' не обновляется корректно. Трудно сказать без кода, хотя ... – SethHB
Они верны, но я уже исправил это с помощью insertIndexPaths: –