【发布时间】:2018-09-24 22:53:13
【问题描述】:
我有一个 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;
}
当我折叠表格底部的单元格时,表格会缩小,但它会被拉得太远,在表格顶部留下大量空白。在调用reloadRowsAtIndexPaths 之后,我尝试了[tableView scrollToRowAtIndexPath:indexPath],这解决了问题,但是这让桌子跳动了。它会下降太多,留下空白然后跳回顶部。如何在不向下滚动太多的情况下缩小表格单元格?
【问题讨论】:
标签: ios objective-c uitableview