2016-01-02 4 views
0

У меня есть собственный шрифт, включенный в мой целевой проект Xcode 7, iOS 9. Я хочу сделать шрифт моноширинным. Я пробовал, и не работал:iOS Моноширинный пользовательский шрифт

let originalFont = UIFont(name: "My Custom Font", size: 18) 
let originalFontDescriptor = originalFont!.fontDescriptor() 

let fontDescriptorFeatureSettings = [ 
    [ 
     UIFontFeatureTypeIdentifierKey: kNumberSpacingType, 
     UIFontFeatureSelectorIdentifierKey: kMonospacedNumbersSelector 
    ] 
] 

let fontDescriptorAttributes = [UIFontDescriptorFeatureSettingsAttribute: fontDescriptorFeatureSettings] 
let fontDescriptor = originalFontDescriptor.fontDescriptorByAddingAttributes(fontDescriptorAttributes) 
let font = UIFont(descriptor: fontDescriptor, size: 0) 

topLabel.font = font 

С или без надписи на этикетке отображается соответствующий пользовательский шрифт. Это просто над кодом ничего не делает.

+1

код выглядит так, как будто он будет работать. Возможно ли, что расположение шрифта неверно? Где вы это делаете? – nycynik

+0

Вот где я собирался. Как получить расположение настройки шрифта? – Gizmodo

+0

Я не думаю, что шрифт без моноширинности можно просто использовать как моноширинный шрифт. Шрифт либо моноширинный, либо нет. – rmaddy

ответ

0

Код, который вы используете, не делает шрифт моноширинным.

Это тонкий шрифт для отображения цифр в моноширинном режиме. Таким образом, все эти цифры шрифта будут иметь такую ​​же ширину.

Ниже приведен пример с 4 этикеток, 1 с использованием пользовательских шрифтами Docis Light, второй является Docis Light с моноширинными цифрами на, третьем является системным шрифтом одного размера, четвёртый является системным шрифтом с моноширинными цифрами на:

monospaced digits font tweak in ios

Как вы видите, этот пользовательский шрифт уже поддерживает функцию моноширинных цифр из коробки без необходимости настройки.

Если вам нужно использовать шрифт с моноширинным шрифтом (а не только цифрами), вы должны использовать специальный моноширинный шрифт (предназначен для моноширин), или вы можете использовать встроенные моноширинные шрифты iOS, такие как Courier или Menlo (см. Все доступные iOS шрифты в http://iosfonts.com/)

Это, как они выглядят с таким же сценарием:

courier and menlo monospaced iOS fonts

с или без настройки, они уже моноширинные и цифры моноширинные, а также.

Я ответил на аналогичный вопрос здесь, возможно, мне нужно просто связать answer вместо изображений, но это гораздо более визуально.

Смежные вопросы