如果标签在iOS中包含更多空格的文本,如何计算标签的准确高度?

时间:2013-07-30 08:02:29

标签: ios dynamic uitableview height uilabel

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

- (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;

对于具有适当间距的评论者,它给出了正确的尺寸,并且可以找到如下图所示:enter image description here

对于带有连续单词的文本的注释意味着在两个单词之间有巨大的空间,这给了我高度,如下图所示 enter image description here

我的第二张图片你可以看到我的问题。通过将标签 92 放入检查其高度动态时,检查nib文件所需的高度需要做什么,其结果为 80 为什么是它呢? 我认为它是由于两个单词之间的间距更长或更长的单词然后空格任何机构都知道为什么它会像任何帮助将被欣赏。谢谢。

2 个答案:

答案 0 :(得分:0)

您已将标签宽度设置为260px,但是表格视图中标签的实际宽度是多少?

答案 1 :(得分: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;
}

希望它会有所帮助!

UPDATE !!! 你只需要:

return size.height+padding +5;

而不是:

return size.height+padding +5;

        return 100;