ios - UITableViewCells不扩展以适应文本
问题描述:
我想让我的UITableView中的单元格适应它们中文本的长度。如果文本太长,单元格会变长一点以适应它。ios - UITableViewCells不扩展以适应文本
我想是这样的:
cell.textLabel.numberOfLines = 0;
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.text = [[name stringByAppendingString:@": "]
stringByAppendingString:comment];
但是,什么情况是,细胞只是试图以适应文本的空间相同的垂直量,并没有得到任何高。
有人会知道我在这里做错了吗?
谢谢!
答
您需要使用单元高度委托。看看这里:dynamic UITableViewCell height。
您需要做的是计算文本高度,然后将单元格的高度设置为该高度。
具体地说这个方法:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *yourText = [someArray objectAtIndex:indexPath.row];
CGSize constraint = CGSizeMake(320 /*cell width*/, CGFLOAT_MAX);
CGSize size = [yourText sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
CGFloat height = MIN(size.height, 44.0f);
return height;
}
其中该柱的一部分?我查看了一下,并没有看到问题中会做什么。或者你的意思是答案指向的教程? – GeekedOut 2012-08-07 16:59:11
你会想看看答案:http://stackoverflow.com/a/8903694/1535038。事情是你需要通过传递文本和宽度来计算行高,然后在heightForRowAtIndexPath:中返回高度。 – 2012-08-07 17:02:00
谢谢 - 但是CELL_CONTENT_WIDTH和CELL_CONTENT_MARGIN来自哪里?有没有办法动态获取这些? – GeekedOut 2012-08-07 17:03:13