Отображение эмодзи в UILabel?

Не уверен, что мне здесь не хватает, и поиск мне не помог. Я хочу отображать символы смайликов в UILabel, и это не так:

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

Отлично работает с другими небуквенными символами Юникода, например. шахматные фигуры, но не с любыми смайликами, которые я пробовал.


person AlanL    schedule 23.07.2012    source источник
comment
Вы проверили, что label.font не является nil?   -  person idz    schedule 23.07.2012
comment
Хорошо, что раньше я этого не делал, но сделал это сейчас, и label.font = ‹UICFFont: 0xb9a5050› font-family: Apple Color Emoji; вес шрифта: нормальный; стиль шрифта: обычный; размер шрифта: 16px   -  person AlanL    schedule 24.07.2012


Ответы (5)


Вероятно, вы используете неправильную кодировку для своих символов эмодзи. Например, в вашем примере я думаю, что вы ищете что-то вроде этого:

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

Взгляните на это. table, чтобы получить нужные вам кодировки.

person Xavi Gil    schedule 23.07.2012
comment
Интересный. Это работает, но разве это не старая проприетарная кодировка Softbank? Я ожидал, что теперь стандартная кодировка Unicode 6.1 должна (тоже?) работать. - person AlanL; 24.07.2012
comment
Apple отклонит приложение, если вы используете эти символы Юникода для отображения смайликов? - person Mini2008; 11.09.2018

Чтобы использовать эмодзи, просто нажмите Control+command+пробел (⌃⌘Пробел). Нет необходимости использовать юникод для эмодзи.

person Ajith Kumar    schedule 27.03.2015
comment
Кто, черт возьми, проголосовал против? Это лучший ответ для использования смайликов через раскадровку. - person jovanjovanovic; 31.03.2015
comment
Я был чрезвычайно удивлен, что такое вообще возможно. - person xinatanil; 23.05.2016
comment
Серьезно, лучший способ сделать это. - person GKK; 12.08.2016
comment
лучший ответ, не знал, что это даже возможно. - person ZTAN; 18.08.2016
comment
Это так удивительно. Экономит огромное количество времени на исследования и копирование. Слава !! - person Nitish; 10.01.2018
comment
Спасибо за этот короткий путь - person Arpit B Parekh; 27.06.2019

В xcode просто перейдите на верхнюю панель и нажмите «РЕДАКТИРОВАТЬ»> «ЭМОДЖИ И СИМВОЛЫ», и появится окно смайликов, и вы можете буквально добавить его к любому тексту в приложении, даже работает в конструкторе интерфейса, если вам нужно добавить его к тексту. уилабеля там.

введите здесь описание изображения

введите здесь описание изображения

person Trianna Brannon    schedule 03.06.2015
comment
Хорошо, это должно быть наверху, потому что это намного проще, чем принятая версия. - person Harish; 24.04.2016

В Swift вы можете сделать:

label.text = "????"

Обязательно включите цитаты. В противном случае вы будете устанавливать текст на то, что находится в переменной. Следующее будет отображаться как «кошка»:

let ???? = "cat"
label.text = ????
person atreat    schedule 26.05.2015

Кодировки Unicode 6.1 также работают, но вам нужно указать их следующим образом:

label.text = @"\U0001F431";
person Peter Willsey    schedule 18.03.2013
comment
Откуда я могу получить список юникодов других значков? - person Shreesh Garg; 11.05.2015
comment
@ShreeshGarg, вы можете получить юникод другого значка из apps.timwhitlock.info/emoji/tables/unicode< /а> - person Ashwinkumar Mangrulkar; 20.01.2016