2

重複の可能性:
iPhone-CTFontをUIFontに変換しますか?

コンパイル前にカスタムフォントをプロジェクトに追加せずに、iOSに動的にカスタムフォントを追加する方法を知っていますか?

私は、フォントがアプリの実行時にダウンロードされ、使用のために動的にロードされるシナリオを見ています。

可能であれば、ロード後にUIFontとして使用したいと思います。

これを行うためのいくつかの可能性を検索したところ、CoreTextを使用してフォントをロードできることがわかりました。

- (CTFontRef)newCustomFontWithFileName:(NSString *)fontFileName
                                ofType:(NSString *)type
                               andSize:(float)pointSize
{
    NSString *fontPath = [[NSBundle mainBundle] pathForResource:fontFileName ofType:type];
    NSData *data = [[NSData alloc] initWithContentsOfFile:fontPath];
    CGDataProviderRef fontProvider = CGDataProviderCreateWithCFData((CFDataRef)data);
    [data release];

    CGFontRef cgFont = CGFontCreateWithDataProvider(fontProvider);
    CGDataProviderRelease(fontProvider);

    CTFontRef font = CTFontCreateWithGraphicsFont(cgFont, pointSize, NULL, NULL);
    CGFontRelease(cgFont);
    return font;
}

ただし、これを行った後、アプリ全体で使用するためにCTFontRefをUIFontに変換することは可能ですか?

あなたたちが知っている/考えていることを私に知らせてください!:)

4

1 に答える 1

0

iOS 5.1の時点では、UIFontからCGFontまたはを作成するパブリックAPIはありませんCTFont。あなたは運が悪い。:(

このためのAPIを追加する場合は、 http://bugreport.apple.comで機能リクエストを開きます。

于 2012-08-12T03:31:29.297 に答える