iPhone:改变来自NIB的UITableViewCell的高度

时间:2010-04-30 11:45:50

标签: iphone uitableview

我有一个自定义UITableViewCells的UITableView,如下所示:

[ CELL 0
    [ description ]
    [ dynamic content type 1 ]
    [ dynamic content type 2 ]
    [ dynamic content type 3 ]
 ]
 [ CELL 1
    [ description ]
    [ dynamic content type 1 ]
    [ dynamic content type 3 ]
 ]
 [ CELL 2
    [ description ]
    [ dynamic content type 2 ]
 ]
 [ ... and so on ... ]

由于[description]部分已经相当复杂,我决定使用Interface Builder来设计它,并在cellForRowAtIndexPath中以[cell addSubview:...]编程方式添加[动态内容]。我的问题是,我在Interface Builder中为自定义UITableViewCell设置了默认高度,但是当我添加[动态内容](可能介于0..3之间)时,我有不同高度的不同单元格。

当然有一件事是计算总高度并更改heightForRowAtIndexPath中的返回值,但是如何更改实际cell的高度值(使用nib文件加载一个固定的高度)?

2 个答案:

答案 0 :(得分:3)

为什么不在cellForRowAtIndexPath(你已经添加了动态内容的地方)更新单元格的边界?

答案 1 :(得分:0)

您想要计算并返回以下值:

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

有一点需要注意的是,这将在启动时为视图中的每一行调用,因此请注意您创建的内容以计算大小。

另一个选项,在实现中可能更标准,是执行分组的TableView小部件,并将此处称为单元格的部分放在一个部分中,然后每行包含描述或动态内容。如果你的ascii绘图是我的设计规范,我就是这样做的,但我猜你还有更多的东西在运行。