如果我使用的是自定义UITableViewCell,是否需要设置heightForRowAtIndexPath?在我的NIB中,我已经设置了单元格高度。
当我覆盖heightForRowAtIndexPath时,我的单元格的内容不会出现,即使它被设置为NIB中定义的高度。
如果我没有覆盖heightForRowAtIndexPath,则单元格的内容会出现,但由于默认高度不够大,所以会出现溢出。
答案 0 :(得分:12)
如果您的所有行都是相同的高度,那么您可以设置rowHeight
的{{1}}属性,而不是实现UITableView
。如果您有不同高度的行,则必须实现tableView:heightForRowAtIndexPath:
。
这两种方法都不会自动返回您在NIB中定义的单元格的高度,因为在开始构建tableView:heightForRowAtIndexPath:
中的单元格之前,它们会被调用。
要使用NIB中定义的单元格的高度,我建议您定义一个名为tableView:cellForRowAtIndexPath:
的控制器的自定义属性,该属性将保存一个永远不会在您的桌面上显示的单个单元格。在prototypeCell
中,检查tableView:heightForRowAtIndexPath:
是否为零。如果是,请从您的NIB初始化它。然后返回prototypeCell
。