2012-06-18 9 views
64

Powiedz, że chcesz określonej czcionki dla UIFont. Skąd wiesz, jak się nazywa?UIFont fontWithName nazwa czcionki

E.g. jeśli chcesz użyć tego kodu:

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

Skąd kopiuj dokładną frazę "American Typewriter". Czy istnieje plik nagłówkowy w Xcode?

UPDATE

Także this poręczny.

Odpowiedz

230

może być interesujące dla ciebie tak szybko Win w Debugger:

(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

Całkiem zgrabny ...! – Snowcrash

+1

Pomógł wybrać właściwą nazwę czcionki. Dzięki! –

+0

Bardzo pomocne, użyłem: NSLog (@ "% @", [UIFont fontNamesForFamilyName: @ "Helvetica Neue"]); –

5

documentation dla UIFont jest całkiem jasno:

Można użyć metody fontNamesForFamilyName: do pobierania konkretne nazwy czcionek dla danej rodziny czcionek. (Uwaga: Jest to metoda klasy)

można uzyskać nazwiska jak to:

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

Podczas gdy ten przykładowy kod może odpowiedzieć na pytanie, lepiej byłoby podać kilka istotnych wyjaśnień do odpowiedzi. W obecnej wersji ta odpowiedź nie dodaje żadnej wartości dla przyszłych czytelników. –

+0

Nie zgadzam się z poprzednim komentatorem - to było to, czego potrzebowałem. – codehearted

3

Wypróbuj

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

W ten sposób otrzymujesz wszystkie nazwy czcionek w projekcie. To jest to ... 3 linie kodu

NSArray *fontFamilies = [UIFont familyNames]; 

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

Zrobiłem bibliotekę, aby rozwiązać ten problem:

https://github.com/Nirma/UIFontComplete

Wszystkie czcionki są reprezentowane jako system Font wyliczenia i biblioteka także szczegóły drogę używania go z Twoimi niestandardowymi czcionkami w czytaniu.

Zasadniczo:

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

zastąpiono albo to:

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

Albo to:

let myFont = Font.helvetica.of(size: 12.0) 
Powiązane problemy