免费开源的iOS开发学习平台

UITableView详解:11-Cell高度的设置

单元格Cell高度的设置,是UITableView开发过程中的一个难点,主要原因在于很多情况下单元格的高度需要根据其中显示的内容来动态调整高度。例如我们常见的应用,如微博、朋友圈等,每个单元格的高度必须要动态调整。

对于单元格高度的控制,有如下几种常用的方法:

  • 修改rowHeight属性。当单元格的高度为固定值时,可以使用rowHeight属性来设置单元格的高度。
@property (nonatomic) CGFloat rowHeight; 
  • 在heightForRowAtIndexPath:代理方法中设置单元格的高度。tableView:heightForRowAtIndexPath:代理方法中可以根据indexPath参数,为每一个单元格设置不同的高度。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
  • 使用self-sizing,要求适配的版本必须在iOS8以上;

  • 使用代码计算Cell高度,该方法的通用性比较强,需要提前根据显示的内容来计算单元格的高度,但需要编写的代码比较多,使用不太方便;

  • 使用第三方库UITableView+FDTemplateLayoutCell计算单元格高度。