Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Введение в Core Text

  • Be the first to comment

Введение в Core Text

  1. 1. Введение в Core Text
  2. 2. Core Text API • Mac • iOS OS X 10.5 3.2
  3. 3. Зачем вообще это надо? • Любые кастомные layouts • Полный контроль за отрисовкой текста • Доступ к элементарным частям и управление ими
  4. 4. Glyph • 1 символ - 1 глиф (a, b, c…) • 1 символ - N глифов (FunCity) • N символов - 1 глиф (emoji)
  5. 5. Glyph • Глиф - единица графики • Символ - единица текста
  6. 6. Glyph Metrics • Ascent • Descent • Leading
  7. 7. Контекст Core Text • CoreText обычно в паре с CoreGraphics • Определяем • Начало drawRect:…. координат - слева внизу • Контекст надо флипать перед отрисовкой CGContextScaleCTM, CGContextTranslateCTM
  8. 8. Основные абстракции CTFramesetter, CTFrame, CTTypesetter
  9. 9. CTFramesetter • Создает объекты для отрисовки • Расчитывает размеры текста
  10. 10. CTFrame • Область текста в заданной CGPath - прямоугольник, эллипс, etc • Фрейм можно отрисовать в CG контексте
  11. 11. CTTypesetter • Определяет как будет выглядеть CTFrame • Алгоритмы переносов, алгоритмы вписывания в CGPath
  12. 12. Остальные примитивы • CTLine - как ни странно строка текста, можно рендерить в контекст отдельно • CTRun - самый мелкий примитив, набор символов с одинаковым стилем
  13. 13. Форматирование текста • NSAttributedString - основа всего (CFAttributedString) • Можно миксовать шрифты, цвета, кегль, baseline, linespacing, etc • Все параметры задаются через dictionary (toll-free bridging)
  14. 14. Бонус!
  15. 15. CTRunDelegate • Набор callback’ов для отображения конкретного CTRun • Можно оставлять места под элементы, которые будут отрендерены позднее (CoreGraphics, UIKit, etc) - кастомные глифы • Задается с помощью того же attributes dictionary в NSAttributedString

    Be the first to comment

    Login to see the comments

  • morozovevm

    Mar. 12, 2015

Views

Total views

514

On Slideshare

0

From embeds

0

Number of embeds

7

Actions

Downloads

2

Shares

0

Comments

0

Likes

1

×