Как вы измените межбуквенный интервал / отслеживание в основном тексте? - PullRequest
8 голосов
/ 20 апреля 2011

Это, вероятно, также можно задать как «Является ли kCTKernAttributeName неправильным?»

Мне нужно изменить интервал между буквами / отслеживание некоторого текста в iOS.(Шрифт, который я использую, слишком мал при небольших размерах.) Существуют основные графические подпрограммы, которые изменяют межсимвольный интервал, но эти подпрограммы не поддерживают Unicode.Существуют другие основные графические подпрограммы, которые определены в терминах глифов, но они, похоже, представляют собой мир боли, среди прочего, не имея защитной сетки от возврата к системным шрифтам для глифов, которых нет в моем шрифте.

Таким образом, основной текст выглядит как способ сделать это, и основной текст поддерживает kCTKernAttributeName для CFAttributedString.Я думаю, что это будет делать то, что я хочу, хотя на самом деле это не кернинг, поскольку кернинг, как правило, является атрибутом пары символов, а это (кажется, из документов) просто унифицированная корректировка продвижения глифа для всех глифов, т.е., отслеживание.

Если кто-то знает, прежде чем идти по довольно болезненному пути конвертации в основной текст API ...

1 Ответ

4 голосов
/ 20 апреля 2011

Имя kCTKernAttribute должно делать то, что вы хотите. Установка его в диапазоне текста корректирует интервал между глифами последовательно, независимо от конкретных глифов.

Я думаю, что отчасти проблема заключается в том, что кернинг, по-видимому, был виртуальным синонимом отслеживания (он все еще просто «регулирует расстояние между (буквами или символами) в части текста, которая будет напечатана» в словаре, который поставляется OS X), и теперь принимает только значение парного кернинга из-за избыточности. Возможно, этимологу лучше прокомментировать эту сторону вещей ...

...