0

UITableView 内のセルをそれらのテキストの長さに適応させようとしています。テキストが長すぎる場合、セルはそれに合わせて少し高くなります。

私はこのようなことを試みています:

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

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

しかし、何が起こるかというと、セルはテキストを同じ垂直方向のスペースに収めようとするだけで、それ以上高くなりません。

ここで私が間違っていることを誰かが知っていますか?

ありがとうございました!

4

1 に答える 1

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;
}
于 2012-08-07T16:56:45.443 に答える