我正在尝试实现变高度表单元格,我认为这是一个优雅的解决方案,结果是递归/堆栈溢出:
- (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:
的目标单元格?
答案 0 :(得分:0)
所以你想得到选定的细胞?
然后写:
UITableViewCell *actCell = [self.tableView cellForRowAtIndexPath:
[self.tableView indexPathForSelectedRow]];