0

我只是找到如何计算标签的确切高度。我读了同样的问题,但我的问题与标签的高度不同。以下代码用于根据标签高度计算单元格的动态高度。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
        CGSize size;
        Comment *objCommnt = [arrOfComments objectAtIndex:indexPath.row];
        NSString *msg = objCommnt.comment;

        CGSize textSize = { 260.0, 10000.0 };
        size = [msg sizeWithFont:[UIFont boldSystemFontOfSize:12]
               constrainedToSize:textSize
                   lineBreakMode:UILineBreakModeWordWrap];
        size.height += padding;
        return size.height+padding +5;

        return 100;
}

填充在哪里

      static CGFloat padding = 20.0;

对于具有适当间距的评论,它给了我正确的大小,它的工作原理如下图所示:在此处输入图像描述

对于带有连续单词的文本的评论意味着两个单词之间有很大的空间给了我穿着高度,如下图所示 在此处输入图像描述

我的第二张图片你可以看到我的问题是什么。当我计算它的高度动态时,我计算它的高度动态它计算为80,为什么会这样?我认为这是由于两个单词之间的间距更大或单词更长,然后是空格。 任何人都知道为什么会这样,任何帮助都会受到赞赏。谢谢你。

4

2 回答 2

0

您已将标签宽度设置为 260 像素,但这是表格视图中标签的实际宽度吗?

于 2013-07-30T08:12:46.963 回答
0

计算高度很容易,享受:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{   
    Comment *objCommnt = [arrOfComments objectAtIndex:indexPath.row];
    NSString *cellText = objCommnt.comment;
    UIFont *cellFont = [UIFont fontWithName:@"Helvetica-Bold" size:20.0f];
    CGSize constraintSize = CGSizeMake(260.0, MAXFLOAT);

    CGSize labelSize = [cellText sizeWithFont:cellFont 
                            constrainedToSize:constraintSize 
                                lineBreakMode:UILineBreakModeWordWrap];

    return labelSize.height + 20.0f;
}

希望它会有所帮助!

更新!!!你只需要:

return size.height+padding +5;

代替:

return size.height+padding +5;

        return 100;
于 2013-07-30T08:15:36.617 回答