2009-07-28 21 views
0

Ich möchte benutzerdefinierte Schriftart in einer iPhone-Anwendung verwenden. Ich habe bereits zwei Dateien 'font suitcase' und die unterstützte Datei 'postscript type 1'. Ich verwende so:Benutzerdefinierte Schriftart verwenden

NSString *fontPath = [[NSBundle mainBundle] pathForResource:@"Myfont" ofType:nil]; 
if(fontPath == nil) 
{ 
    return; 
} 
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithFilename([ fontPath UTF8String]); 
if(fontDataProvider == nil) 
{ 
    return; 
} 
// Create the font with the data provider, then release the data provider. 
customFont = CGFontCreateWithDataProvider(fontDataProvider); 
if(customFont != nil) 
{ 
    bLoadedFontFile = YES; 
} 
CGDataProviderRelease(fontDataProvider); 
    ... 

'Myfont' ist eine Postscript-Datei. CGDataProviderCreateWithFilename API gibt NULL zurück.

Dank Virendra E-Mail-ID: [email protected]

Antwort

0

Also gehe ich davon aus, dass der Dateiname der Schrift MyFont ist. < etwas Erweiterung >? Wenn dem so ist, glaube ich, dass Sie möglicherweise den Typ in den Aufruf von pathForResource festlegen oder ein Suffix an den Ressourcennamen anhängen müssen.

Nebenbei habe ich die Informationen in this SO question verwendet, um benutzerdefinierte Schriftarten auf dem iPhone mit Erfolg zu rendern. Die fraglichen Schriftarten waren jedoch im True Type-Format.

+0

Meine benutzerdefinierte Datei hat keine Erweiterung. Meine Schriftart ist "font suitcase", die keine Erweiterung hat. danke Virendra –

+0

es ist eine Postscript-Schriftart, sie haben normalerweise keine Erweiterungen. – j2emanue

3

Es ist schon eine Weile her, und ich bin mir sicher, dass Sie Ihre Lösung gefunden haben. Hier ist eine nette, saubere Möglichkeit, es jetzt zu tun:

Speichern Sie Ihre. TTF oder .otf-Datei in Ihrem Projektverzeichnis und importieren Sie in Xcode.

Fügen Sie in .Plist das Feld UIAppFonts (ein Array) hinzu oder wählen Sie die Option "Von der Anwendung bereitgestellte Schriftarten" und fügen Sie den Dateinamen zum ersten Eintrag hinzu.

Erstellen Sie eine Instanz von UIFont in Ihrer .h:

UIFont *myFont; 

... 

@property (nonatomic, retain) UIFont *myFont; 

dann synthetisieren es in .m: @ synthesize myFont

In einigen Verfahren oder eine Aktion, rufen NSLog(@"%@", [UIFont familyNames]);

Finden Sie Ihre neue Schriftart in die Liste und nehmen Sie den Namen genau so, wie er angezeigt wird

In Ihrer ViewDidLoad() - Methode oder wo immer Sie möchten, Code

myFont = [UIFont fontWithName:@"FontNameFromPreviousStep" size:20]; 

Ihre Methoden an, um die Schriftart des Etiketts zu ändern oder was auch immer: label.font = myFont;

Abgleich der NSLog(), damit es nicht Speicherressourcen

0

diese lädt alle „ttf“ verwenden Schriften Sie App und von

[UIFont fontWithName:@"FontFamilyName" size:20]; 

XXXX.m

zu lode zur Verfügung stellen
Verwandte Themen