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.
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.
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];
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);
}];
}];
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)
label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17];
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]);
}