Имя шрифта UIFont fontWithName

Предположим, вам нужен конкретный шрифт для UIFont. Откуда вы знаете, что он назвал?

например. если вы хотите использовать этот код:

[someUILabelObject setFont:[UIFont fontWithName:@"American Typewriter" size:18]];

Откуда вы копируете точную фразу "American Typewriter". Есть ли заголовочный файл в Xcode?

ОБНОВЛЕНИЕ

Также найдено это под рукой.

Ответ 1

Может быть интересным для вас как Quick Win в отладчике:

(lldb) po [UIFont fontNamesForFamilyName:@"Helvetica Neue"]

(id) $1 = 0x079d8670 <__NSCFArray 0x79d8670>(
HelveticaNeue-Bold,
HelveticaNeue-CondensedBlack,
HelveticaNeue-Medium,
HelveticaNeue,
HelveticaNeue-Light,
HelveticaNeue-CondensedBold,
HelveticaNeue-LightItalic,
HelveticaNeue-UltraLightItalic,
HelveticaNeue-UltraLight,
HelveticaNeue-BoldItalic,
HelveticaNeue-Italic
)

Ответ 2

documentation для UIFont довольно понятен:

Вы можете использовать метод fontNamesForFamilyName: для извлечения конкретные имена шрифтов для данного семейства шрифтов. ( Примечание: метод класса)

Вы можете получить семейные имена следующим образом:

NSArray *familyNames = [UIFont familyNames];

Ответ 3

Try

NSArray *familyNames = [UIFont familyNames];
[familyNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
    NSLog(@"* %@",obj);
    NSArray *fontNames = [UIFont fontNamesForFamilyName:obj];
    [fontNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
        NSLog(@"--- %@",obj);
    }];
}];

Ответ 4

label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17];

Ответ 5

Так вы получите все имена шрифтов в вашем проекте. Что это... 3 строки кода

NSArray *fontFamilies = [UIFont familyNames];

    for (int i=0; i<[fontFamilies count]; i++)
    {
        NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]);
    }

Ответ 6

Я создал библиотеку для решения этой проблемы:

https://github.com/Nirma/UIFontComplete

Все шрифты представлены как системное перечисление Font, и в библиотеке также подробно описывается способ использования его с вашими пользовательскими шрифтами в read me.

В основном это:

let font = UIFont(name: "Arial-BoldItalicMT", size: 12.0)

Заменяется следующим образом:

let font = UIFont(font: .arialBoldItalicMT, size: 12.0)

Или это:

let myFont = Font.helvetica.of(size: 12.0)