2011-07-26 17 views
0

すべてが手伝ってください!iOSフォントの読み込みに問題があります

iOSプロジェクトにdin.otfフォントを追加しました。 そして、私が持っている私のplistに:私はそれを使用したいとき

enter image description here

今、私はこの行を記述する必要がありジュスト:

lalel.font = [UIFont fontWithName:@"din" size:12.f]; 

は、私は右ですか?それはまったく動作しません... ありがとう!

答えて

2

コードのこの部分を追加することにより、インポートした後、あなたのデバイスで使用可能なすべてのフォントをリストアップしてみてください:

(から撮影:http://ajnaware.wordpress.com/2008/10/24/list-of-fonts-available-on-the-iphone/

レガシー回答

// List all fonts on iPhone 
    NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]]; 
    NSArray *fontNames; 
    NSInteger indFamily, indFont; 
    for (indFamily=0; indFamily<[familyNames count]; ++indFamily) 
    { 
     NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]); 
     fontNames = [[NSArray alloc] initWithArray: 
      [UIFont fontNamesForFamilyName: 
      [familyNames objectAtIndex:indFamily]]]; 
     for (indFont=0; indFont<[fontNames count]; ++indFont) 
     { 
      NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]); 
     } 
     [fontNames release]; 
    } 
    [familyNames release]; 

としてみてくださいあなたのフォント名を検索してください。

//エンドレガシーIはの.plistファイルにそれを追加するために必要としない、実行時にフォントをロードする方法を見つけた

回答。

+ (void)loadFontAtPath:(NSString*)path 
{ 
    NSData *data = [[NSFileManager defaultManager] contentsAtPath:path]; 
    if(data == nil) 
    { 
#ifdef DEBUG 
     NSLog(@"Failed to load font. Data at path is null path = %@", path); 
#endif //ifdef Debug 
     return; 
    } 
    CFErrorRef error; 
    CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)data); 
    CGFontRef font = CGFontCreateWithDataProvider(provider); 
    if(!CTFontManagerRegisterGraphicsFont(font, &error)){ 
#ifdef DEBUG 
     CFStringRef errorDescription = CFErrorCopyDescription(error); 
     NSLog(@"Failed to load font: %@", errorDescription); 
     CFRelease(errorDescription); 
     return; 
#endif //ifdef Debug 
    } 
    CFStringRef fontName = CGFontCopyFullName(font); 
    NSLog(@"Loaded: %@", fontName); 
    [[self sharedInstance] addFont:font withName:(NSString *)fontName]; 

    CFRelease(fontName); 
    CFRelease(font); 
    CFRelease(provider); 
} 

+ (void) unloadFont:(NSString*) fontName 
{ 
    CFErrorRef error; 
    CGFontRef fontref = [[self sharedInstance] getFontWithName:fontName]; 
    if(fontref) 
    { 
     CTFontManagerUnregisterGraphicsFont(fontref, &error); 
     [[self sharedInstance] removeFontWithName:(NSString *)fontName]; 
    } 
    else 
    { 
     NSLog(@"WARNING: Font cannot be unloaded: %@", fontName); 
    } 
} 

NSLog(@ "Loaded:%@"、fontName)という名前を使用できます。出力。

+0

あなたのために働いたのですか? –

+0

すべての設定(フォントをplistファイルに追加してプロジェクトに追加)した場合、このコードはどのフォントがアプリケーションに埋め込まれているか(システム1に加えて)表示できます。あなたのアプリケーションにdidFinishLaunchingWithOptions:メソッドを追加するだけで、リストが作成されます。その後、リスト内のフォントの名前を見つけるだけです。 –

+0

何とか私はそれを見つけることができないようです... – Morkrom