Текст Unicode для iPhone с CoreGraphics - PullRequest
1 голос
/ 18 января 2010

Я использую CGContextShowGlyphsAtPoint в своем приложении для визуализации символов, следующих по пути. У меня не было никаких проблем с этим, пока я не запустил приложение на i18n и не обнаружил, что японские символы выглядят хорошо везде, кроме случаев, когда я пытаюсь отобразить их с помощью этой функции.

Есть ли способ, чтобы эти символы отображались правильно, а не как пустые поля? Глупо, я не ожидал этого (новичок в разработке для iPhone), и мне действительно нужно поддержать этих персонажей: (* ​​1003 *

Я искал stackoverflow и google весь день, но, похоже, ничего не получилось с этим.

Спасибо за любую помощь, которую вы можете предложить,

Брин

Ответы [ 2 ]

2 голосов
/ 18 января 2010

Этот очень похож на ваш вопрос. По сути, очень трудно получить соответствующие символы для рисования текста в чистом кварце, поэтому я рекомендую использовать метод категории NSString UIKit -drawAtPoint: withFont :. Это обеспечит вам полную поддержку NSString для языков, позволяя вам рисовать непосредственно в контексте Core Graphics. Это то, что мы используем в Core Plot framework для рендеринга текста в CALayer.

Однако рисование таким способом намного медленнее, чем рендеринг текста из чистого кварца, поэтому, если вы делаете много текста, это может замедлить работу вашего приложения. Кроме того, расширения UIKit для NSString учитывают перевернутый графический контекст UIViews и их CALayers, что вызывает другие проблемы .

0 голосов
/ 18 января 2010

Я этого не знал, но я кое-что покопался и расскажу, что нашел:

  1. Руководство по программированию Quartz2D относится к «Руководству по программированию ATSUI», но не имеет активной ссылки.
  2. Google обнаружил в кэше копию устаревшего API-интерфейса ATSUI Carbon здесь
  3. Apple заявляет здесь , что вам не следует использовать ATSUI, вместо этого используйте CoreText
  4. Существует открытый радар для переноса CoreText на iPhone с 31 июля 2009 г. 12:54

Извините, приятель: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...