Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何计算包含表情符号的文本的高度_Iphone_Uitableview_Nsstring_Uilabel_Emoji - Fatal编程技术网

Iphone 如何计算包含表情符号的文本的高度

Iphone 如何计算包含表情符号的文本的高度,iphone,uitableview,nsstring,uilabel,emoji,Iphone,Uitableview,Nsstring,Uilabel,Emoji,我的问题几乎类似于将大小设置为适合显示标签中的所有文本,但由于单元格的高度不同,它与表视图中的其他单元格重叠。要计算我当前使用的高度,请使用此方法 +(CGSize)CommentSize:(NSString*)comment { return [comment sizeWithFont:[UIFont boldSystemFontOfSize:messageTextSize] constrainedToSize:CGSizeMake(265, CGFLOAT_MAX) lineBreakMo

我的问题几乎类似于将大小设置为适合显示标签中的所有文本,但由于单元格的高度不同,它与表视图中的其他单元格重叠。要计算我当前使用的高度,请使用此方法

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

return [comment sizeWithFont:[UIFont boldSystemFontOfSize:messageTextSize] constrainedToSize:CGSizeMake(265, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];
}
它正确计算文本的高度,但表情符号占用的额外高度(6像素)不会添加到消息高度

我还尝试将文本设置为另一个标签,使其大小合适,并获得高度,然后像这样传递,但它给出的高度与上面的约束方法相同

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

}
我如何计算高度。请帮帮我

找到与此问题相关的另一个链接。尝试按照mooshee的建议实施解决方案。但无法解决问题。谁能建议我如何解决这个问题

解决方案

对上面的第二个代码段进行一个小的编辑就解决了这个问题-将UILabel更改为TTTATributableLabel使用TTT和UILabel计算的高度是不同的

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


谢谢。

请检查此代码

CGRect labelFrame = label.frame;  
labelFrame.size = [label sizeThatFits:CGSizeMake(100, 9999)];  
[label setFrame:labelFrame];

注释大小调整并重新检查发生了什么?@mindfreak同样的事情它覆盖了其他单元格。它成功了,感谢提示@vamsi575kg增加此标签的高度并尝试:UILabel*reviews=[[UILabel alloc]initWithFrame:CGRectMake(1413270300)];您是否使用textfield或textview输入输入?我认为您必须为每行添加额外的6pix,因此首先计算行数,然后添加6*no.of.line。第二个选项是将字体大小增加到6pix.:)是的,我确实明白。但问题是,如果文本中没有表情符号,它将显示大量空白。将字体大小增加到6pix不是一个好主意(对我来说)。任何我如何做了一些工作,并得到了解决方案,我将张贴它很快。非常感谢@mindfreak