2012-08-07 66 views
0

我想讓我的UITableView中的單元格適應它們中文本的長度。如果文本太長,單元格會變長一點以適應它。ios - UITableViewCells不擴展以適應文本

我想是這樣的:

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

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

但是,什麼情況是,細胞只是試圖以適應文本的空間相同的垂直量,並沒有得到任何高。

有人會知道我在這裏做錯了嗎?

謝謝!

回答

4

您需要使用單元高度委託。看看這裏: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; 
} 
+0

其中該柱的一部分?我查看了一下,並沒有看到問題中會做什麼。或者你的意思是答案指向的教程? – GeekedOut 2012-08-07 16:59:11

+0

你會想看看答案:http://stackoverflow.com/a/8903694/1535038。事情是你需要通過傳遞文本和寬度來計算行高,然後在heightForRowAtIndexPath:中返回高度。 – 2012-08-07 17:02:00

+0

謝謝 - 但是CELL_CONTENT_WIDTH和CELL_CONTENT_MARGIN來自哪裏?有沒有辦法動態獲取這些? – GeekedOut 2012-08-07 17:03:13

相關問題