我正在使用
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
获取 NSString 的大小。但是,当该字符串包含表情符号时,它似乎计算文字 unicode 字符的大小而不是考虑表情符号本身的大小,从而导致返回的大小不正确。
如何正确获取带有表情符号字符的字符串的大小,因为它会出现在 uilabel 中?
最佳答案
NSString 没有呈现表情符号,它代表一个字符串,所以 sizeWithFont 将只考虑字符串。
我会使用:
CGRect labelFrame = label.frame;
labelFrame.size = [label sizeThatFits:CGSizeMake(100, 9999)];
[label setFrame:labelFrame];
或
//Alternatively
[label sizeToFit];
请记住,sizeToFit
调用了 sizeThatFits:
方法,因此就将标签设置为正确的高度而言,sizeThatFits: 更快,也更容易眼睛。
关于iphone - 当 NSString 包含表情符号时如何获取 NSString 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15965525/