ios - 具有表情符号时 TTTAttributedLabel 不显示最后一行

标签 ios uilabel

我们使用“TTTAtributedLabel”来显示标签。为了计算正确的矩形大小,我们使用 NSString 的“sizeWithFont”方法,并使用“constrainedToSize”字段的宽度。
计算没问题,除非文本中有一些Emoji符号,并且文本是多行的(例如:smiley-newLine-smiley)。在那种情况下,返回的尺寸太小(垂直),最后一行没有显示。如果文本不包含任何表情符号(例如 X-newLine-X)- 大小正确。
我们的字体是“HelveticaNeue”大小:16.25,以防有任何差异。
有没有更好的方法来计算所需的大小,以便它也能与 Emoji 一起使用?
谢谢

最佳答案

我在根据标签内容制作自动高度标签的时候也遇到了同样的情况。 一切似乎都很好,除非标签内容中有表情符号。

这是因为我没有为 AttributedString 使用正确的 setText 方法。

[label setText:text afterInheritingLabelAttributesAndConfiguringWithBlock:^ 
    return mutableAttributedString;
}];

这是设置AttributedString的正确方法,但是我做的是

[label setAttributedText:text];

因此当其中包含表情符号时标签高度错误。

我通过使用 Github 手册中描述的正确设置方法更改此设置方法解决了这个问题。

关于ios - 具有表情符号时 TTTAttributedLabel 不显示最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18102351/

相关文章:

ios - 如何设置 UIBezierPath 边框以在 ios 中查看?

objective-c - -[NSString sizeWithFont :] returns different results in release and debug builds

ios - NSAttributedString 忽略 UILabel 的 Autoshrink 和 numberOfLines (iOS 6)

iphone - 如何显示 UILabels 数组?

ios - 如何通过自动调整大小在水平中心设置多个 UIview

ios - 使用 AutoLayout 获取 UILabel 宽度很热门吗?

ios - #selector 函数被意外调用

ios - 创建 SKLabelNode 时未命名的子节点?

ios - 为什么我的时间 UILabels 从暂停状态恢复播放时会跳过 2 秒?

ios - UILabel TEXT 的两种颜色