[英]Vary table view cell height based on text
我有几个单元格的表视图。 填充单元格的文本是不可预测的(基于API请求的结果)。 我想做的是根据单元格的文本对于单元格来说是否太长来调整单元格的高度(例如,单元格在文本中添加“ ...”)。
这样一来,无论结果/文本如何显示在表格视图单元格中,都将始终完整显示。
我宁愿不实现heightForRowAtIndexPath
因为我必须实现很多代码。
更新:
当我说“我有很多代码可以这样做”时,我的意思是说我实际上有很多代码可以解析请求,检查条件并执行算法,此外,我还有很多表视图。 只是将这些东西移到另一种方法上,我就出发了!
您能指出我要进行演示的任何资源吗,您知道该怎么做吗?
您必须实现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包含标签的大小。 您将使用此大小来计算cellForRowAtIndexPath以及heightForRowAtIndexPath中的UILabel框架。
使用heightForRowAtIndexPath
。 它不应该有很多额外的代码。 只需获得一个用于填充单元格的对象的引用,检查该文本值的长度并返回所需的高度即可。 这正是该委托方法的目的所在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.