У меня есть UITableView с ячейками, которые раскрываются / сворачиваются, когда пользователи нажимают на них, используя:
-(void)tableView:(UITableView *)_tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
...
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
...
}
После запуска reloadRowsAtIndexPath у меня есть heightForRowAtIndexPath, возвращающее другую высоту в зависимости от того, разрушается ли ячейкаили расширение:
-(CGFloat)tableView:(UITableView *)_tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
// if expand
return 200;
// if collapse
return 49;
}
Когда я сворачиваю ячейку в нижней части таблицы, таблица сжимается, но она уменьшается слишком далеко, оставляя значительное количество пробелов в верхней части таблицы.Я попытался [tableView scrollToRowAtIndexPath:indexPath]
после вызова reloadRowsAtIndexPaths
, что решает проблему, но это делает таблицу нервной.Он опустится слишком далеко, оставляя пустое пространство, а затем снова прыгнет на вершину.Как уменьшить ячейку таблицы, не прокручивая ее слишком далеко?