webentwicklung-frage-antwort-db.com.de

UIFont fontWithName Schriftname

Angenommen, Sie möchten eine bestimmte Schriftart für UIFont. Woher weißt du, wie es heißt?

Z.B. Wenn Sie diesen Code verwenden möchten:

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

Von wo kopieren Sie den genauen Ausdruck "American Typewriter". Gibt es eine Header-Datei in Xcode?

AKTUALISIEREN

Auch gefunden dies praktisch.

65
Snowcrash

Könnte für Sie als Quick Win im Debugger interessant sein:

(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
)

November 2018 - Update Eine neue Swift-y Referenz für " Custom Fonts with Xcode " - von Chris Ching. Ich musste aktualisieren, da dies eine großartige Wertschöpfung für die neue Methode ist, die mit allen fehlenden Teilen kombiniert ist, um benutzerdefinierte Schriftarten in einem Projekt zu verwenden.

237

Das Dokumentation für UIFont ist in dieser Hinsicht ziemlich klar:

Du kannst den ... benutzen fontNamesForFamilyName:-Methode zum Abrufen der spezifischen Schriftnamen für eine bestimmte Schriftfamilie. ( Hinweis : Es ist eine Klassenmethode)

Sie können die Familiennamen wie folgt erhalten:

NSArray *familyNames = [UIFont familyNames];
5
Alladinian

Versuchen

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

Ich habe eine Bibliothek erstellt, um dieses Problem zu lösen:

https://github.com/Nirma/UIFontComplete

Alle Schriften werden als system Font -Enum dargestellt, und in der Bibliothek wird auch beschrieben, wie Sie sie mit Ihren benutzerdefinierten Schriften in der Readme-Datei verwenden können.

Grundsätzlich gilt:

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

Wird ersetzt durch:

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

Oder dieses:

let myFont = Font.helvetica.of(size: 12.0)
3
Nirma
label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17];
2
brian.clear

So erhalten Sie alle Schriftnamen in Ihrem Projekt. Das war's ... 3 Codezeilen

NSArray *fontFamilies = [UIFont familyNames];

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