3

ユーザーのカスタムフォントを使用するアプリを作成したいので、実行時にttfファイルをロードするようにアプリにします。iphoneでのカスタムフォントの追加で説明したように、UIAppFontsキーを使用してカスタムフォントを追加することに慣れています 。ユーザーが作成したカスタムバージョンが提供された場合、アプリでスワップアウトできるプレースホルダーカスタムフォントを作成できなかったのではないでしょうか。

4

1 に答える 1

3

私が使用したフォントファイルは次のとおりです:http ://www.webpagepublicity.com/free-fonts/a/Almagro%20Regular.ttf

そして、私はこのコードを使用してそれを行いました:

 CGDataProviderRef fontDataProvider = CGDataProviderCreateWithFilename([fontFilepath UTF8String]);

 // Create the font with the data provider, then release the data provider.
CGFontRef customFont =  CGFontCreateWithDataProvider(fontDataProvider);
CGDataProviderRelease(fontDataProvider);

CFErrorRef error = nil;
CTFontManagerRegisterGraphicsFont(customFont, &error);

CGFontRelease(customFont);

if (error != nil)
{
    NSError* err = (__bridge NSError*)error;
    NSLog(@"error code %d desc: %@",err.code, [err description]);
}

UIFont* f = [UIFont fontWithName:@"Almagro" size:14.0];

ただし、いくつかの落とし穴があります。フォント名はファイル名と若干異なる場合がありますので、知っておく必要があります。私の例では、ファイル名は「Almagro Regular.ttf」でしたが、フォント名は「Almagro」だけでした。別のフォーラムで、「Sans Serif」のようなフォントは、UIFont fontWithName:sizeの「SansSerif」として登録されるため、名前にスペースが含まれるフォントには注意する必要があると誰かが言いました。

動作するかどうか教えてください。

于 2012-08-07T15:24:52.283 に答える