【问题标题】:How to Calculate the height of text which contains emoji iphone如何计算包含 emoji iphone 的文本的高度
【发布时间】:2013-07-22 13:23:26
【问题描述】:

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

+(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 的建议实施解决方案。但无法解决问题。任何人都可以建议我如何解决这个问题。

解决方案

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

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

谢谢。

【问题讨论】:

  • 评论 sizeToFit 并重新检查发生了什么?
  • @mindfreak 与其他单元格重叠。
  • 成功了,感谢@vamsi575kg 的提示

标签: iphone uitableview nsstring uilabel emoji


【解决方案1】:

检查此代码...

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

【讨论】:

  • 增加此标签的高度并尝试: UILabel *reviews = [[UILabel alloc]initWithFrame:CGRectMake(14, 13,270,300)];
  • 您是使用 textfield 还是 textview 进行输入的?
  • 我认为你必须每行添加额外的 6pix,所以首先计算 no.of 行,然后添加 6*no.of.line。第二个选项是将字体大小增加到 6pix。 :)
  • 是的,我确实明白这一点。但问题是,如果文本中没有表情符号,它将显示很多空白。将字体大小增加到 6pix 不是一个好主意(就我而言)。无论我如何解决问题并获得解决方案,我都会尽快发布。非常感谢@mindfreak
猜你喜欢
  • 2017-11-03
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
  • 2020-01-05
  • 2021-09-01
  • 2013-12-13
  • 2011-02-11
相关资源
最近更新 更多