iOS5 модные иконки (эмодзи?) для специальных символов Юникода - не то, что я хочу - PullRequest
7 голосов
/ 08 ноября 2011

Я всегда думал, что это здорово, что я могу использовать простые символические символы Юникода в строке, когда мне нужна стрелка, пуля или что-то еще. Глифы будут отображаться в том же цвете, что и остальная часть строки, с красивыми простыми и чистыми значками. Я мог бы просмотреть, как они будут выглядеть, используя диалоговое окно «Специальные символы» на Mac в меню «Правка» в XCode.

В iOS5 эти глифы отображаются в полном цвете и не являются простыми и чистыми. Я полагаю, что это значки Emoji?

Я ищу объяснение этого изменения и в идеале, как заставить iOS5 вернуться к поведению iOS2 - iOS4.

Вот пример: @"← left arrow, right arrow → airplane ✈";

Редактировать :

Очевидно, расширения NSString UIKit для рендеринга текста (drawAtPoint: / drawInRect:) не демонстрируют такого поведения. Так что, возможно, это вещь UILabel? В частности, я заметил это внутри кнопки сегмента UISegmentControl и в UILabel.

1 Ответ

1 голос
/ 20 марта 2012

Это не ошибка, это зависит от используемого шрифта.Когда вы используете символ в строке, которая недоступна в выбранном шрифте, iOS автоматически заменяет глиф другим шрифтом.

Системный шрифт (Helvetica) не содержит этих символов, поэтому яЯ предполагаю, что Apple изменила список запасных шрифтов, чтобы Emoji занял первое место по сравнению с тем, что он использовал ранее для отступления для этих символов.

Чтобы исправить это, найдите шрифт, который a) имеет версиюсимволы, которые вы хотите в нем, и b) доступны на iPhone, и установите для своей метки использование этого вместо системного шрифта по умолчанию.

В качестве альтернативы, вы можете просто создать подкласс UILabel и переопределить метод drawRect, чтобыон использует методы drawAtPoint / drawInRect для рисования строки.

...