CGPoint offset = [_table contentOffset];
[_table reloadData];
[_table setContentOffset:offset animated:NO]; //unuseful
// __block UITableView *tableBlock = _table;
// [self performBlock:^(id sender) {
// [tableBlock setContentOffset:offset];
// } afterDelay:2];
Я знаю, что не знаю ни одного метода делегата, который вызывается после reloadData
.
А использование afterDelay: 2
, которое является своего рода хакерством, может быть слишком коротким или слишком длинным, так как я могу его реализовать?
Ответ Matt выше заставил меня понять, что это должна быть проблема с estimatedRowHeight
.
Поэтому, поскольку несколько указали reloadData
, не должен изменять contentOffset
поэтому, когда Вы устанавливаете Ваш rowHeight = UITableView.automaticDimension
только, чтобы убедиться установить корректное estimatedRowHeight
.
, Если бы эти estimatedRowHeight
короче, чем тогда UITableView
, оценил, что это попытается зафиксировать высоту, и поведение прокрутки появилось бы, но только если ячейка с проблемой высоты видима. Другими словами, убедитесь Ваш estimatedRowHeight
, установлен правильно.
я надеюсь, что это могло помочь кому-то еще.