【发布时间】:2014-02-03 18:49:12
【问题描述】:
我在UITableView 中创建了带有标题和副标题的原型UITableViewCell。这些单元格中的内容有许多字行。我正在尝试动态设置单元格的高度。
带有 sizeFont 的想法/方法已被最新的 SDK 弃用。
如何以简单的方式动态设置单元格的高度?
如果您提供一些建议或指向教程的链接,甚至是一些更好的编码示例,我将不胜感激!
【问题讨论】:
标签: uitableview height
我在UITableView 中创建了带有标题和副标题的原型UITableViewCell。这些单元格中的内容有许多字行。我正在尝试动态设置单元格的高度。
带有 sizeFont 的想法/方法已被最新的 SDK 弃用。
如何以简单的方式动态设置单元格的高度?
如果您提供一些建议或指向教程的链接,甚至是一些更好的编码示例,我将不胜感激!
【问题讨论】:
标签: uitableview height
要为UITableViewCell 设置高度,请使用UITableViewDelegate 的tableView:heightForRowAtIndexPath: 方法。
要在 iOS7 中计算 UILabel 高度,您必须使用 boundingRectWithSize:options:context: 或 NSString。
boundingRectWithSize:options:context: 将为您提供绘制 UILabel 文本所需的矩形。
试试这个代码:
- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath
{
NSString* string = yourLabel.text;
UIFont* font = yourLabel.font;
CGRect expectedLabel =
[string boundingRectWithSize:CGSizeMake(tableView.frame.size.width, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{ NSFontAttributeName : font }
context:nil];
CGFloat verticalOffset = 10;
return verticalOffset + expectedLabelRect.size.height + verticalOffset;
}
【讨论】: