Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Введение в Core Text
Core Text API
• Mac
• iOS

OS X 10.5

3.2
Зачем вообще это надо?
• Любые

кастомные layouts

• Полный

контроль за
отрисовкой текста

• Доступ

к элементарным
частя...
Glyph
•

1 символ - 1 глиф (a, b, c…)

•

1 символ - N глифов (FunCity)

•

N символов - 1 глиф (emoji)
Glyph

• Глиф

- единица графики

• Символ

- единица текста
Glyph Metrics
• Ascent
• Descent
• Leading
Контекст Core Text
• CoreText

обычно в паре с CoreGraphics

• Определяем
• Начало

drawRect:….

координат - слева внизу

...
Основные абстракции

CTFramesetter, CTFrame,
CTTypesetter
CTFramesetter
• Создает

объекты для
отрисовки

• Расчитывает

размеры текста
CTFrame
• Область

текста в заданной
CGPath - прямоугольник,
эллипс, etc

• Фрейм

можно отрисовать в
CG контексте
CTTypesetter
• Определяет

как будет
выглядеть CTFrame

• Алгоритмы

переносов,
алгоритмы вписывания в
CGPath
Остальные примитивы
•

CTLine - как ни странно строка
текста, можно рендерить в
контекст отдельно

•

CTRun - самый мелкий...
Форматирование текста
•

NSAttributedString - основа всего
(CFAttributedString)

•

Можно миксовать шрифты, цвета,
кегль, ...
Бонус!
CTRunDelegate
•

Набор callback’ов для отображения
конкретного CTRun

•

Можно оставлять места под элементы,
которые будут...
Nächste SlideShare
Wird geladen in …5
×

von

Введение в Core Text Slide 1 Введение в Core Text Slide 2 Введение в Core Text Slide 3 Введение в Core Text Slide 4 Введение в Core Text Slide 5 Введение в Core Text Slide 6 Введение в Core Text Slide 7 Введение в Core Text Slide 8 Введение в Core Text Slide 9 Введение в Core Text Slide 10 Введение в Core Text Slide 11 Введение в Core Text Slide 12 Введение в Core Text Slide 13 Введение в Core Text Slide 14 Введение в Core Text Slide 15
Nächste SlideShare
10 вещей, которые «невозможно» сделать в iOS
Weiter
Herunterladen, um offline zu lesen und im Vollbildmodus anzuzeigen.

1 Gefällt mir

Teilen

Herunterladen, um offline zu lesen

Введение в Core Text

Herunterladen, um offline zu lesen

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Введение в 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
  • morozovevm

    Mar. 12, 2015

Aufrufe

Aufrufe insgesamt

535

Auf Slideshare

0

Aus Einbettungen

0

Anzahl der Einbettungen

7

Befehle

Downloads

2

Geteilt

0

Kommentare

0

Likes

1

×