Ответ 1
Добавьте
[table setNeedsDisplay];
Кроме того, есть ли особая причина, по которой вы не анимируете?
Итак, у меня есть UITableViewController
, который запускает еще один tableVC
, который меняет количество ячеек для оригинала при его увольнении.
При увольнении, несмотря на то, что вернула правильную высоту ячейки (и высоту заголовка), а также обновленное количество строк (такое, что содержание прокрутки огромно), прокрутка только отскакивает при прокрутке. При просмотре свойства contentSize
прокрутки таблицы contentSize
является неправильным и совпадает с предыдущим.
При первоначальной загрузке оригинала tableVC
у меня нет проблемы. Если у меня есть большое количество ячеек, таблица будет прокручиваться так, как ожидалось. Только при увольнении представленного tableVC
я столкнулся с проблемой. Одна вещь, о которой я не уверен, - это когда вызывать reloadData. Я делаю это следующим образом:
1. в представленном tableVC
:
[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil]
2. в оригинальной таблицеVC:
-(void)viewDidAppear
{
//tablecell number manipulated
[table reloadData];
}
Самое смешное, что если я повернусь к пейзажу и вернусь к портрету, тогда contentSize будет правильно настроен, и я смогу снова прокрутиться.
Добавьте
[table setNeedsDisplay];
Кроме того, есть ли особая причина, по которой вы не анимируете?
Я решил это, явно перезагрузив раздел и не используя reloadData. [table reloadSections: [NSIndexSet indexSetWithIndex: 0] withRowAnimation: UITableViewRowAnimationAutomatic];
У меня была аналогичная проблема. Я изменял количество строк и разделов статического tableView в ответ на данные, введенные в дочерний viewController, но при обновлении контента contentSize
не выполнялся, что приводило к проблемам с прокруткой.
В моем случае, похоже, в iOS6 есть ошибка в reloadData
, которая препятствовала правильному вычислению нового размера tableView (это отлично работало в iOS7). Я решил это, вызвав соответствующие вставки и удаляя строки и разделы, как описано здесь: UITableView не перезагрузит contentSize.