如您所知,在iOS 7及早期版本中,tableView:heightForRowAtIndexPath:
之前会调用tableView:cellForRowAtIndexPath:
。换句话说,如果UITableView没有使用估计的高度特征,它会在制作单元格之前计算每个单元格的高度。
但是,我最近发现计算单元格高度的委托方法由每个单个制作单元格tableView:cellForRowAtIndexPath:
调用。我想知道为什么iOS8中的调用过程发生了变化。另外,我想知道在iOS8中设置支持单元格动态高度的UITableView的正确方法,并保留以前版本中使用的前一种方式。
答案 0 :(得分:0)
如果您未实现委托方法:tableView:estimatedHeightForRowAtIndexPath:
,则会为tableview中的每个单元格调用tableView:heightForRowAtIndexPath:
。
您的问题并未表明您正在实施此方法,因此很可能是问题所在。
答案 1 :(得分:0)
iOS8支持动态单元格大小。如果您没有实现tableView:heightForRowAtIndexPath:
,并且在您的单元格上启用了自动布局,系统将计算适合单元格内容的大小,并将该大小赋予单元格。这非常方便,因为从iOS8开始,实现动态单元格大小现在非常容易,而之前很难实现。