如何获取tableView中的表目标单元格:heightForRowAtIndexPath:?

时间:2010-10-28 14:28:21

标签: iphone objective-c uitableview uikit

我正在尝试实现变高度表单元格,我认为这是一个优雅的解决方案,结果是递归/堆栈溢出:

- (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    MyCustomCell *cell = (MyCustomCell *)[aTableView cellForRowAtIndexPath:indexPath];

    return [cell heightForObject:...]; // passing data object on indexPath
}

所有表格单元格标签和其他视图属性都在创建时初始化(以通常的tableView:cellForRowAtIndexPath:方式)。因此,我的想法是,我可以将高度特定的计算从表控制器移动到我的自定义单元格实现。我可以在其他表控制器中使用相同的单元,而不需要任何代码重复。 heightForObject:可以查看它的子视图,他们正在使用什么字体并从中构建高度值。哎呀,我甚至可以改变某些细胞标签的字体大小,理论上它们应该正确地更新它们的高度。

正如前面提到的那样 - 我正在使用此代码来解决堆栈溢出问题。我如何获得正在调用tableView:heightForRowAtIndexPath:的目标单元格?

1 个答案:

答案 0 :(得分:0)

所以你想得到选定的细胞?

然后写:

UITableViewCell *actCell = [self.tableView cellForRowAtIndexPath:
                                           [self.tableView indexPathForSelectedRow]];