I am currently using
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
to get the size of an NSString. However, when that string includes emojis, it seems to calculate the size for the literal unicode character rather than taking into account the size of the emoji itself, rendering the returned size incorrect.
How do I correctly get the size of the string with emoji characters, as it will appear in a uilabel?
The NSString is not presenting the emoji, it's representing a string, so the sizeWithFont will only account for the string.
I would use:
CGRect labelFrame = label.frame;
labelFrame.size = [label sizeThatFits:CGSizeMake(100, 9999)];
[label setFrame:labelFrame];
or
//Alternatively
[label sizeToFit];
Bare in mind that sizeToFit
calls the sizeThatFits:
method, so in terms of just setting the label to the right height, sizeThatFits: is quicker, and much easier on the eye.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With