2009-11-07 70 views
2

我正在使用具有一些标签的自定义UITableViewCell。单元格中有一个标签,其中的字符串长度是可变的,因此我不能在heightForRowAtIndexPath方法中为单元格设置一个不变的高度。我也不想将计算逻辑放在我的自定义单元格中放入表代表中。设置变量UITableViewCell高度

回答

3

如何在您的单元类中定义类方法来进行计算?您可能仍然需要将委托中的一些信息传递给单元类(如模型对象或某些内容),并且您可能必须复制单元格的一些代码,但至少应该使用所有的逻辑将住在细胞类中。

在您的委托中,您可以将任何将索引路径转换为单元类所需的逻辑分解为其自己的方法,可从heightForRowAtIndexPath:cellForRowAtIndexPath:中调用。

+0

这似乎是一个不错的主意,谢谢! – cocoapriest 2009-11-07 19:51:08

8

-heightForRowAtIndexPath:是你可以设置它的地方。我知道把这个逻辑放在tableview委托中有点难看,但它不能在单元格中完成。

想一想,tableview在它实例化单元格之前必须知道单元格的高度,以便它可以计算滚动条的长度(它是成比例的)。这意味着您无法计算单元格本身的大小,因为在实例化单元格之前,必须先了解单元格的大小。

换句话说,您不能在单元格中设置行高,因为tableview需要知道如果用户不滚动到它们将永远不会实例化的单元格的高度。

相关问题