UITableViewCells

时间:2011-04-04 02:44:07

标签: ios uitableview

可以动态配置tableview单元格,以便根据数据/文本内容,不同的单元格可以具有不同的高度吗?这是否违反了人机界面指南?我发现的文档是参差不齐和混乱,至少对像我这样的新手来说! :)

2 个答案:

答案 0 :(得分:5)

您可以通过在UITableViewDelegate中实现tableView:heightForRowAtIndexPath:方法来指定每个单元格的高度;请注意,这将针对每一行进行调用,甚至是当前不可见的行,因此它必须很快,如果您的表有数千行,则可能会遇到麻烦。

我在HIG中看到的关于不同高度的单元格的唯一声明是“在普通表中避免变量行高。在分组表格中可以接受可变行高度,但它们可以使普通表格看起来混乱且不均匀。” / p>

答案 1 :(得分:3)

UITableViewCell无法控制自己的高度。

要设置表格中行的高度,请实现UITableViewDelegate方法tableView:heightForRowAtIndexPath:

这有时会有点痛苦 - 因为细胞通常是计算自身高度的最佳位置。我使用的模式是在自定义UITableViewCell类上实现一个类方法,以根据它显示的数据计算单元格的高度。从您tableView:heightForRowAtIndexPath:

的实施中调用此方法

我从未在普通表或分组表中对可变高度行拒绝应用。