ここからiPhoneアプリのプロジェクトにカスタムフォントをロードする方法をすでに知ってい ます。コードからこれを行う方法があるかどうか尋ねたいですか? 私の問題は、アプリにリソースフォルダーがあり、フォントファイル名があり、それを「myfont.ttf」と呼ぶことです。
code からttf ファイルを取得して plist ファイルに入れたいのですが、さらにfontWithName:size:メソッドの表示名を知りたいです。これを達成する方法はありますか?
ここからiPhoneアプリのプロジェクトにカスタムフォントをロードする方法をすでに知ってい ます。コードからこれを行う方法があるかどうか尋ねたいですか? 私の問題は、アプリにリソースフォルダーがあり、フォントファイル名があり、それを「myfont.ttf」と呼ぶことです。
code からttf ファイルを取得して plist ファイルに入れたいのですが、さらにfontWithName:size:メソッドの表示名を知りたいです。これを達成する方法はありますか?
これは古い質問ですが、他の誰かがこれに出くわした場合に備えて、とにかくこれを行う方法があります.
+ (void)loadFontAtPath:(NSString*)path{
NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
if(data == nil){
NSLog(@"Failed to load font. Data at path is null");
return;
}
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)data);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if(!CTFontManagerRegisterGraphicsFont(font, &error)){
CFStringRef errorDescription = CFErrorCopyDescription(error);
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
}
これにより、実行時に指定されたパスにフォントが読み込まれ、plist に追加せずに通常と同じように使用できます。
はい、できます。ただし、CoreText および/または CoreGraphics で多くの作業を行う必要があります。
これを行うのに役立つ Zynga の素敵なクラスがあります: https://github.com/zynga/FontLabel
サンプル プロジェクトは、.plist を使用せずにバンドルから .ttf ファイルをロードし、アプリケーション内でこれらのフォントを使用する方法を示しています。
コードは有効で、最初から良い点です。
編集: 前のアプローチでは CoreGraphics を使用していますが、これは優れていますが、Core Text を使用する方がはるかに優れています。この質問に対する興味深い回答を見つけました: Core Text を使用してファイルからフォント (TTF) を読み込むにはどうすればよいですか?
CoreText フレームワークの経験がない場合は、Apple ドキュメント内の公式の紹介をお読みください。