2012-06-18 5 views
64

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

E.g. если вы хотите использовать этот код:

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

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

UPDATE

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

ответ

230

может быть интересно для вас, как 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 
) 
+0

Довольно аккуратный ...! – Snowcrash

+1

Это помогло выбрать правильное имя шрифта. Благодаря! –

+0

Очень полезно, я использовал: NSLog (@ "% @", [UIFont fontNamesForFamilyName: @ "Helvetica Neue"]); –

5

documentation для UIFont довольно ясно по этому вопросу:

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

Вы можете получить семейные имена, как это:

NSArray *familyNames = [UIFont familyNames]; 
2
label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17]; 
+2

Хотя этот пример кода может ответить на вопрос, было бы предпочтительнее включить некоторые существенные объяснения в ваш ответ. В настоящее время этот ответ добавляет немного никакой ценности для будущих читателей. –

+0

Не согласен с предыдущим комментатором - это то, что мне нужно. – codehearted

3

Пробег:

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); 
    }]; 
}]; 
2

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

NSArray *fontFamilies = [UIFont familyNames]; 

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

Я сделал библиотеку, чтобы решить эту проблему:

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) 
Смежные вопросы