如果我使用自定义 UITableViewCell,是否需要设置 heightForRowAtIndexPath?在我的 NIB 中,我已经设置了单元格高度。
当我覆盖 heightForRowAtIndexPath 时,我的单元格的内容不会出现,即使它被设置为 NIB 中定义的高度。
如果我不覆盖 heightForRowAtIndexPath,单元格的内容会出现,但会出现溢出,因为默认高度不够大。
最佳答案
如果所有行的高度都相同,则可以设置 UITableView
的 rowHeight
属性,而不是实现 tableView:heightForRowAtIndexPath:
.如果你有不同高度的行,那么你必须实现 tableView:heightForRowAtIndexPath:
。
这些方法都不会自动返回您在 NIB 中定义的单元格的高度,因为它们在您开始在 tableView:cellForRowAtIndexPath:
中构建单元格之前被调用。
要使用在您的 NIB 中定义的单元格的高度,我建议您为您的 Controller 定义一个名为 prototypeCell
的自定义属性,它将包含一个永远不会显示在您的表格上的单元格。在 tableView:heightForRowAtIndexPath:
中,检查 prototypeCell
是否为 nil。如果是,请从您的 Nib 初始化它。然后返回prototypeCell.frame.size.height
。
关于iphone - 如果我使用自定义 UITableViewCell,是否需要设置 heightForRowAtIndexPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2999580/