2014-09-11 62 views
0

如你所知,在iOS的7和之前的版本,tableView:heightForRowAtIndexPath:tableView:cellForRowAtIndexPath:之前调用。换句话说,如果UITableView不使用估计的高度特征,它将在计算细胞之前计算每个细胞的高度。正在计算在iOS 8上更改的UITableViewCell的高度?

不过,我最近发现,谁计算单元的高度委托方法是由tableView:cellForRowAtIndexPath:每一个决策单元调用。我想知道为什么在iOS8中更改调用过程。另外,我想知道如何在iOS8中设置支持单元格动态高度的UITableView,并保留之前版本中使用的前一种方法。

+0

你的意思'的tableView:heightForRowAtIndexPath'了,不再在iOS8上叫什么? – mostruash 2014-09-11 08:09:11

+0

@mostruash没有。 'tableView:heightForRowAtIndexPath'由'tableView:cellForRowAtIndexPath:'调用。 – 2014-09-11 09:21:34

回答

0

如果你没有实现委托方法:tableView:estimatedHeightForRowAtIndexPath:那么tableView:heightForRowAtIndexPath:将在tableview中为每个单元格调用。

您的问题不表明你实现这个方法,所以很可能这就是问题所在。

+0

尽管tableView:estimatedHeightForHeaderInSection方法是针对标题部分调用的,但不针对单元格调用tableView:heightForRowAtIndexPath方法。 – nikhil84 2014-09-11 08:19:54

+0

这不是我所说的。 – Anorak 2014-09-11 09:20:37

0

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

相关问题