UITableViewCell高度自适应

iOS开发中行高灵活可变的UITableView的性能优化

风格不统一 提交于 2019-12-05 12:56:13
iOS开发中行高灵活可变的UITableView的性能优化 一、UITableView的构建原理 在新闻类,电商类等应用中,应用着大量的图文混排视图,在表视图UITableView中,开发者通常需要在如下代理方法中计算出当前cell填充内容后的高度,之后将其返回: -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ //先根据数据源中数据计算高度 CGFloat height = 0; return height; } 然而,如果在如上方法中进行打印调试可以发现,heightForRowAtIndexPath方法会重复执行好多次,首先,并且heightForRowAtIndexPath方法的执行机制在不同版本的iOS系统还会有很大不同。以iOS9为例,一行cell要展示在屏幕上,至少要执行5遍TableView的heightForRowAtIndexPath方法: TableView配置部分: ① 当TableView视图即将展现在屏幕上时,会把所有行的行高数据进行拉取。 ②当TableView在执行setLayoutMargins方法进行自身布局时会把所有行高数据进行拉取。