-1

我有一个带有几个单元格的表格视图。填充单元格的文本是不可预测的(基于 API 请求的结果)。我想要做的是根据单元格的文本是否对单元格来说太长来调整单元格的高度(例如,单元格将“...”添加到文本中)。

这样,无论结果/文本并呈现到表格视图单元格中,都始终完全显示。

我宁愿不实现,heightForRowAtIndexPath因为我必须实现很多代码才能做到这一点。

更新:

当我说“我有很多代码要做”时,我的意思是我确实有很多代码解析请求、检查条件和执行算法,而且我有很多表视图。刚把那些东西移到另一种方法,我就走了!

你能指点我演示这个的任何资源吗,你知道怎么做吗?

4

2 回答 2

3

您必须实现 heightForRowAtIndexPath 来改变表格行的高度,但计算高度不一定需要很多代码。

使用 NSString:sizeWithFont:constrainedToSize 来计算所需的单元格大小。

    //szMaxCell contains the width of your table cell, and the maximum height you want to allow
// strCellContents is an NSString containing the text to display

        CGSize szMaxCell = CGSizeMake (tableView.frame.size.width - 20,999);
        UIFont *font = [UIFont systemFontOfSize:12];    // whatever font you're using to display
        CGSize szCell = [strCellContents sizeWithFont:font constrainedToSize:szMaxCell lineBreakMode:UILineBreakModeWordWrap];

szCell 包含标签的大小。你将使用这个大小来计算你的 UILabel 在你的 cellForRowAtIndexPath 和你的 heightForRowAtIndexPath 中的框架。

于 2012-10-26T12:10:06.647 回答
1

使用heightForRowAtIndexPath. 它不应该有很多额外的代码。只需获取对您正在填充单元格的对象的引用,检查该文本值的长度并返回您需要的高度。这正是委托方法的设计目的。

于 2012-10-26T12:10:51.917 回答