3

我的问题几乎与设置大小相似,以适应显示标签中的所有文本,但由于单元格的高度不同,它与表格视图中的其他单元格重叠。计算我目前使用这种方法的高度

+(CGSize)CommentSize:(NSString*)comment {

return [comment sizeWithFont:[UIFont boldSystemFontOfSize:messageTextSize] constrainedToSize:CGSizeMake(265, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];
}

它会正确计算文本的高度,但表情符号占用的额外高度(6 像素)不会添加到消息高度中。

我还尝试将文本设置为另一个标签,使其 sizetofit 并获取高度并像这样传递它,但它给出的高度与上述受限方法相同

+(CGSize)CommentSize:(NSString*)comment {

    UILabel *reviews = [[UILabel alloc]initWithFrame:CGRectMake(14, 13,265,30)];//Set frame
    reviews.numberOfLines=0;
    reviews.lineBreakMode = UILineBreakModeWordWrap;
    reviews.font = [UIFont boldSystemFontOfSize:14];
    reviews.text = comment;
    [reviews sizeToFit];

    CGFloat reviewlblheight = reviews.frame.size.height;

    CGSize maxlblSize = CGSizeMake(265,reviewlblheight);
    return maxlblSize;

}

我怎样才能计算高度。请帮助伙计们。

找到与此问题相关的另一个链接https://github.com/mattt/TTTAttributedLabel/issues/82。尝试按照 mooshee 的建议实施解决方案。但无法解决问题。任何人都可以建议我如何解决这个问题。

解决方案

对上面第二个代码片段的小修改解决了这个问题 -将 UILabel 更改为 TTTAttributelabel使用 TTT 和 UIlabel 计算的高度不同。

任何其他面临相同问题的人都可以使用第二个代码段。我不确定这是否是正确的方法,但它解决了问题。

谢谢你。

4

1 回答 1

-3

检查此代码...

CGRect labelFrame = label.frame;  
labelFrame.size = [label sizeThatFits:CGSizeMake(100, 9999)];  
[label setFrame:labelFrame];
于 2013-07-24T05:21:20.890 回答