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

She*_*lam 5 iphone cocoa-touch objective-c interface-builder uitableview

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

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

如果我没有覆盖heightForRowAtIndexPath,则单元格的内容会出现,但由于默认高度不够大,因此存在溢出.

cdu*_*uhn 12

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

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

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

  • +1大量使用Prototype设计模式! (2认同)