Предположим, у меня есть приложение часов, и я хочу пометить часы символами, которые могут быть в произвольном наборе символов/шрифте. Я хотел бы обрамить персонажа в рамку и максимально заполнить ее. Как я могу это сделать? Если я использую UILabel
, вокруг глифа вставляется пробел. Вот примеры, показывающие две метки, обе с одинаковым шрифтом, но с разными символами. Все еврейские цифры кажутся короче арабских. Есть ли способ определить размер глифов или как-то вытолкнуть глифы, чтобы они соответствовали рамке?
Как видите, еврейское число короче, несмотря на то, что оно добавляется к более высокому UILabel.
Изменить: после публикации я сделал первый проход с использованием основного текста, чтобы посмотреть, может ли это решить мою проблему. Кажется, что не будет. Посмотрите на эти иллюстрации, сравнивающие еврейский глиф с арабским цифровым глифом. Они желтые - это границы этикетки. Зеленый — это прямоугольник глифа, указанный в основном тексте. Я надеялся получить прямоугольник заподлицо с глифом, но похоже, что глифы на иврите включают пространство над и рядом с тем, что я ожидал быть глифом. Есть ли что-то еще, что я должен проверить?
CTFont
, особенно на раздел Получение данных глифов: developer.apple.com/documentation/coretext/ctfont-q6r - person DonMag   schedule 14.11.2017CTFontGetBoundingRectsForGlyphs
. Все они, как и ожидалось, для арабских цифр, и во всех над ними есть дополнительное пространство для еврейских цифр. - person Victor Engel   schedule 22.11.2017