博客> UITableViewCell动态更新高度,无需重新加载
UITableViewCell动态更新高度,无需重新加载
2018-12-16 11:06 评论:0 阅读:753 yuxuechen236
ios UITableViewCell 动画效果 高度变化
   之前使用UITableViewCell布局的时候每次cell内容发生变化导致cell高度变化时都是通过reloadData来重新加载刷新高度,但是这会导致cell里面的控件都重新加载,一般情况下是没有什么问题的,但是最近遇到一个开发需求,就是要求滑动cell里面的一个ScrollView控件根据里面滑动显示的图片的尺寸动态调整cell布局和高度.
   一开始考虑的是使用reloadData,在滑动图片后根据图片的尺寸重新计算该行的cell的高度,这样reloadData后就可以重新调整高度了,但是这样的话Cell里面的控件就重置了,正在滑动的ScrollView就会出现问题。之后我查了下资料并参考了下其它人写的文章发现UITableViewCell里面还有两个方法可以实现不reloadData也能调整cell的高度

[myTableView beginUpdates]; [myTableView endUpdates];

使用方法如下 我使用了一个数组'heightArray'来记录每行cell的高度. 通过下面的TableViewDataSource的方法实现cell高度

  • (CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath { NSNumber *number = self.heightArray[indexPath.row]; return [number floatValue]; }

当cell里面的控件改变导致Cell高度改变时,记录Cell改变后的高度放入heightArray中,替换对应的高度,然后调用 [myTableView beginUpdates]; [myTableView endUpdates]; 即可以动画的方式改变cell高度,而且不会重新加载Cell.

参考链接

收藏
0
sina weixin mail 回到顶部