如果我使用自定义UITableViewCell,是否需要设置heightForRowAtIndexPath?

时间:2010-06-08 17:09:26

标签: iphone objective-c cocoa-touch uitableview interface-builder

如果我使用的是自定义UITableViewCell,是否需要设置heightForRowAtIndexPath?在我的NIB中,我已经设置了单元格高度。

当我覆盖heightForRowAtIndexPath时,我的单元格的内容不会出现,即使它被设置为NIB中定义的高度。

如果我没有覆盖heightForRowAtIndexPath,则单元格的内容会出现,但由于默认高度不够大,所以会出现溢出。

1 个答案:

答案 0 :(得分:12)

如果您的所有行都是相同的高度,那么您可以设置rowHeight的{​​{1}}属性,而不是实现UITableView。如果您有不同高度的行,则必须实现tableView:heightForRowAtIndexPath:

这两种方法都不会自动返回您在NIB中定义的单元格的高度,因为在开始构建tableView:heightForRowAtIndexPath:中的单元格之前,它们会被调用。

要使用NIB中定义的单元格的高度,我建议您定义一个名为tableView:cellForRowAtIndexPath:的控制器的自定义属性,该属性将保存一个永远不会在您的桌面上显示的单个单元格。在prototypeCell中,检查tableView:heightForRowAtIndexPath:是否为零。如果是,请从您的NIB初始化它。然后返回prototypeCell