incorrect width calculation for some zero-width-joiner-joined emoji

Originator:colin.myr
Number:rdar://20123668 Date Originated:11-Mar-2015 02:28 PM
Status:Open Resolved:
Product:iOS Product Version:8.3 12F5037c
Classification:Other Bug Reproducible:Always
 
Summary:
When using a UILabel and sizeToFit(), the size returned appears incorrect for certain of the β€˜new’ emoji. Specifically those emoji which use U+2764 HEAVY BLACK HEART return the size that would be expected if each emoji were rendered independently.

And actually it seems like in some scenarios they _are_ being rendered independently, although this issue remains even when they are not.

Steps to Reproduce:
insert the appropriate text into a UILabel and call sizeToFit().

Expected Results:
The size should be less then that of the joined emoji, unjoined.

Actual Results:
The size is roughly (n)x wider then expected, where n is the number of emoji in the joined group

Regression:
Describe circumstances where the problem occurs or does not occur, such as software versions and/or hardware configurations.

Notes:
Additionally, I would be _very_ curious about the following:
1) why it was decided to use two distinct joiners for the ’kiss on lips’ combos (πŸ‘¨β€β€οΈβ€πŸ’‹β€πŸ‘¨), (πŸ‘¨β€οΈπŸ’‹πŸ‘¨) when it feels like the πŸ’‹
U+1F48B KISS MARK itself contains the semantic information required. 
2) why it was decided to use a heart which requires an emoji variation selector, which feels like basically just asking for trouble, and which probably has _something_ to do with this bug report (I might’ve gone with πŸ’— U+1F497 GROWING HEART, which has a certain poetry?) 

Anyway, deeply saddened not to have been in the room for this particular bike shed. πŸ˜’πŸ’­πŸš΄πŸ 


I’ve included two screenshots: these are from a custom keyboard extension that reads the text before the cursor and then just displays the unicode scalars; it also displays the result of assigning the text and calling sizeToFit() on an otherwise unconfigured uilabel.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!