是否在iOS 8上更改了UITableViewCell的高度?

时间:2014-09-11 08:06:17

标签: ios ios8

如您所知,在iOS 7及早期版本中,tableView:heightForRowAtIndexPath:之前会调用tableView:cellForRowAtIndexPath:。换句话说,如果UITableView没有使用估计的高度特征,它会在制作单元格之前计算每个单元格的高度。

但是,我最近发现计算单元格高度的委托方法由每个单个制作单元格tableView:cellForRowAtIndexPath:调用。我想知道为什么iOS8中的调用过程发生了变化。另外,我想知道在iOS8中设置支持单元格动态高度的UITableView的正确方法,并保留以前版本中使用的前一种方式。

2 个答案:

答案 0 :(得分:0)

如果您未实现委托方法:tableView:estimatedHeightForRowAtIndexPath:,则会为tableview中的每个单元格调用tableView:heightForRowAtIndexPath:

您的问题并未表明您正在实施此方法,因此很可能是问题所在。

答案 1 :(得分:0)

iOS8支持动态单元格大小。如果您没有实现tableView:heightForRowAtIndexPath:,并且在您的单元格上启用了自动布局,系统将计算适合单元格内容的大小,并将该大小赋予单元格。这非常方便,因为从iOS8开始,实现动态单元格大小现在非常容易,而之前很难实现。