AlanL
AlanL

Reputation: 636

Showing emoji in a UILabel?

Not sure what I'm missing here, and searching hasn't helped me. I want to display emoji characters in a UILabel, and this isn't doing it:

UILabel *label = [[UILabel alloc] init];
label.font = [UIFont fontWithName:@"AppleColorEmoji" size:16.0];
label.text = [NSString stringWithFormat:@"%C", 0x1F431];
// ... etc.

Works fine with other non-letter unicode characters, e.g. chess pieces, but not with any emoji characters that I have tried.

Upvotes: 18

Views: 28400

Answers (5)

Ajith Kumar
Ajith Kumar

Reputation: 1223

To use Emoji's just press Control+command+space (⌃⌘Space). No need of using unicode for emoji.

Upvotes: 77

Trianna Brannon
Trianna Brannon

Reputation: 1254

In xcode just go to the top bar and click EDIT > EMOJIS & SYMBOLS and an emoji box will pop up and you can literally add it to any text in the app, even works in the interface builder if you need to add it to the text of a uilabel there.

enter image description here

enter image description here

Upvotes: 17

atreat
atreat

Reputation: 4413

In Swift you can do:

label.text = "🐈"

Be sure to include the quotes. Otherwise you'll be setting the text to whatever is in the variable. The following would display as "cat":

let 🐈 = "cat"
label.text = 🐈

Upvotes: 7

Peter Willsey
Peter Willsey

Reputation: 1098

The unicode 6.1 encodings work as well, but you would have to specify them like this:

label.text = @"\U0001F431";

Upvotes: 5

Xavi Gil
Xavi Gil

Reputation: 11568

You are probably not using the correct encoding for your emoji characters. For instance in your example I think you are looking for something like this:

label.text = [NSString stringWithFormat:@"%C", 0xe04f];

Have a look at this table to get the encodings you need.

Upvotes: 19

Related Questions