Jump to content

Основной текст

Core Text — это Core Foundation в стиле API в macOS , впервые представленный в Mac OS X 10.4 Tiger , опубликованный в Mac OS X 10.5 Leopard и представленный для iPad с iPhone SDK 3.2. Предоставляя C API , он заменяет возможности рендеринга текста ныне устаревших платформ QuickDraw и ATSUI в предыдущих версиях Mac OS X. По словам Apple, Core Text «разработан для высокой производительности и простоты использования», а его API макетирования «простой, последовательный и тесно интегрированный с Core Foundation, Core Graphics и Cocoa». [1]

Особенности [ править ]

Core Text предоставляет следующие непрозрачные типы:

  • CTFramesetter — создает объекты CTFrame из заданного строкового объекта с атрибутами и объекта CGPath с помощью CTTypesetter.
  • CTTypesetter — выполняет раскладку строк; например, разрыв строки
  • CTFrame — представляет собой массив строк (т.е. объектов CTLine).
  • CTLine — представляет собой массив прогонов глифа.
  • CTRun — упорядоченный набор глифов, имеющих один и тот же атрибут.
  • CTFont — представляет шрифт.

Пример [ править ]

Следующий код отображает текст «Hello, World!» к данному графическому контексту в Objective-C .

// Prepare font
CTFontRef font = CTFontCreateWithName(CFSTR("Times"), 48, NULL);

// Create an attributed string
CFStringRef keys[] = { kCTFontAttributeName };
CFTypeRef values[] = { font };
CFDictionaryRef attr = CFDictionaryCreate(NULL, (const void **)&keys, (const void **)&values,
					  sizeof(keys) / sizeof(keys[0]), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFAttributedStringRef attrString = CFAttributedStringCreate(NULL, CFSTR("Hello, World!"), attr);
CFRelease(attr);

// Draw the string
CTLineRef line = CTLineCreateWithAttributedString(attrString);
CGContextSetTextMatrix(context, CGAffineTransformIdentity);  //Use this one when using standard view coordinates
//CGContextSetTextMatrix(context, CGAffineTransformMakeScale(1.0, -1.0)); //Use this one if the view's coordinates are flipped

CGContextSetTextPosition(context, 10, 20);
CTLineDraw(line, context);

// Clean up
CFRelease(line);
CFRelease(attrString);
CFRelease(font);

Ссылки [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5d5c1f6f3f6b2969c64f81790ad15d5c__1707061560
URL1:https://arc.ask3.ru/arc/aa/5d/5c/5d5c1f6f3f6b2969c64f81790ad15d5c.html
Заголовок, (Title) документа по адресу, URL1:
Core Text - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)