Думаю большинство из нас знает, что такое Emoji и все видели клавиатуру в Emoji в iOS. В целом, Emoji — специальные символы, которые отображаются в виде картинок. Вся прелесть в том, что картинки нам не нужны, система сама все обработает. Их можно безболезненно вставлять в UILabel или UITextView и т.д.

Каждый Emoji-символ имеет определенный код в Unicode. Например, левый верхний Emoji на картинке имеет код 0x1F604. Чтобы отобразить такой символ в своем приложении необходимо создать строку с кодом такого символа. Такой символ можно задать строкой:

@"U0001F604";

Но данная строка нам не дает представления о том, что это за символ и что он означает. Для удобства я создал несколько классов для доступа к Emoji.

Как использовать?

Я выделил четыре категории значков и для каждой категории создал отдельный класс. Категории — Emoticons, Transport, MapSymbols, Pictographs. Все методы в классе — статические. Каждый метод (за исключением одного) называется так же как и Emoji-символ, который метод возвращает. Вернемся к символу с кодом 0x1F604. Его название — «Smiling Face With Open Mouth And Smiling Eyes». Чтобы получить строку, которая содержит этот символ, нужно сделать так:

[EmojiEmoticons smilingFaceWithOpenMouthAndSmilingEyes]

Чтобы отобразить значок в своем приложении можно назначить такую строку любому компоненту, который может отображать текст. Например, UITextView:

UITextView* textView = [[UITextView alloc] initWithFrame:self.view.bounds];
textView.text = [EmojiEmoticons smilingFaceWithOpenMouthAndSmilingEyes];

С помощью этих классов вы сможете получить доступ к 679 Emoji. Но, к сожадению некоторые не поддерживаються на iOS. Чтобы получить все Emoji, нужно вызвать метод allEmoji у класса Emoji:

[Emoji allEmoji]

Так же, в каждом классе есть метод начинающийся на all и который возвращает все символы из данной категории.

[EmojiEmoticons allEmoticons];
[EmojiMapSymbols allMapSymbols];
[EmojiPictographs allPictographs];
[EmojiTransport allTransport];

Исходный код классов вы можете найти в моем репозитории на GitHub или в репозитории idev.by.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *