Ab iOS 4.1 gibt es eine neue Möglichkeit, benutzerdefinierte Schriftarten zu verwenden. Sie ermöglicht es Ihnen, Schriften dynamisch zu laden, sei es aus Dateien, die in der App enthalten sind, aus heruntergeladenen Daten, oder was auch immer. Außerdem können Sie Schriftarten laden, wenn Sie sie brauchen, während die alte Methode sie alle beim Start der App lädt, was zu lange dauern kann, wenn Sie viele Schriftarten haben.
Die neue Methode wird beschrieben unter ios-dynamic-font-loading
Sie verwenden die CTFontManagerRegisterGraphicsFont
Funktion und übergibt ihr einen Puffer mit Ihren Schriftdaten. Dieser ist dann verfügbar für UIFont
und Webansichten, genau wie bei der alten Methode. Hier ist der Beispielcode aus diesem Link:
NSData *inData = /* your font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error)
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
5 Stimmen
In einer der CS193p-Vorlesungen (iPhone Application Development) in Stanford stellte Evan fest, dass die Installation einer eigenen Schriftart auf einem Gerät "eine Menge Arbeit" ist, was zumindest bedeutet, dass es möglich ist :-)
2 Stimmen
IPhone 3.2 erlaubt benutzerdefinierte Schriftarten, aber nur für das iPad (siehe Antwort unten)
6 Stimmen
Am Ende habe ich Bilder verwendet.
2 Stimmen
Wow... nach all dem ist die Antwort immer noch Bilder... unglaublich. Ich hatte wirklich auf eine solide Implementierung von benutzerdefinierten Schriftarten gehofft, die dieselben Möglichkeiten wie Systemschriftarten bieten...
0 Stimmen
Hilfreiche Nachhilfe: codewithchris.com/
1 Stimmen
Ich habe die ursprüngliche Frage erheblich gekürzt, um dem Jahrzehnt Rechnung zu tragen, das seit meiner Frage vergangen ist. Ich möchte alle anderen ermutigen, ihre Kommentare und Antworten entsprechend zu kürzen.