0

我正在尝试使 UITableView 中的单元格适应其中文本的长度。如果文本太长,单元格会长得更高以适应它。

我正在尝试这样的事情:

cell.textLabel.numberOfLines = 0;
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;

cell.textLabel.text = [[name stringByAppendingString:@": "] 
                               stringByAppendingString:comment];

但是发生的情况是,单元格只是试图将文本放入相同的垂直空间量中,并且不会变得更高。

有人知道我在这里做错了什么吗?

谢谢!

4

1 回答 1

4

您需要使用单元格高度委托。看看这里:动态 UITableViewCell 高度

您需要做的是计算文本高度,然后将单元格的高度设置为该高度。
具体这种方法:

- (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;
}
于 2012-08-07T16:56:45.443 回答