1. ホーム
  2. ios

[解決済み] iOS 7のカスタムフォント

2023-01-22 11:56:19

質問

ゲームを開発しているのですが、アプリ内でカスタムフォントを使いたいと思っています。そのためにSpriteKitを使用しているのですが、もしそれが重要であれば。私はこれを使用してみました https://github.com/deni2s/IBCustomFonts を使ってみましたが、このフォントではうまくいきません。 http://www.fontspace.com/freaky-fonts/emulogic

いろいろ試してみて、アプリのinfo.plistにフォントも登録したのですが...。どなたかご存知の方いらっしゃいますか?

解決方法を教えてください。

まず、SpriteKitでは何も変わらないという前提で考えています。

  1. プロジェクトにコピーされた .otf または .ttf のフォントが必要です。例えばSupporting Filesにあります。
  2. を編集する必要があります。 .plist ファイルを編集する必要があります。追加 "アプリケーションによって提供されるフォント"。 キーをplistに追加し、その中に 項目0 コピーしたフォントの正確なファイル名をSupporting files WITH extensionにコピーしてください。例: "JosefinSansStd-Light_0.otf"。
  3. アプリにインポートしたフォントが、アプリ自体にパックされていることを確認します。これを行うには ターゲット を選択し、次に ビルドフェーズ であれば バンドルリソースのコピー . この中にフォントがない場合は、フォントを サポートファイル .

最後に、アプリの起動時にすべてのフォントをリストアップして、フォントの使用可能な名前を確認したいと思います。この小さなコードでそれを行うことができます。

NSArray *fontFamilies = [UIFont familyNames];
for (int i = 0; i < [fontFamilies count]; i++)
{
    NSString *fontFamily = [fontFamilies objectAtIndex:i];
    NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
    NSLog (@"%@: %@", fontFamily, fontNames);
}

印刷された結果からあなたのフォントを検索します。例えば、"Josefin" と検索すると、実際のフォント名が "JosefinSansStd-Light" であることがわかります。その後、そのフォントを使用するだけです。

UIFont *customFont = [UIFont fontWithName:@"JosefinSansStd-Light" size:20];

iOS8では フォントを追加する をプロジェクトに直接追加すると、インターフェイスビルダーで表示されます。 iOS7用のフォントをプログラムで設定し、xCode6のインターフェイスビルダーでそれを選択するように、このことを考慮してコードを修正します。追記 xCode6のインターフェースビルダーは正しいフォント名を教えてくれますので、以下のコードにコピーペーストしてください。

#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)

 if(SYSTEM_VERSION_LESS_THAN(@"8.0"))
    {
        UIFont *customFont = [UIFont fontWithName:@"OpenSans-Light" size:32];
        self.registerLabel.font = customFont;  
    }

これが役に立つことを願って、乾杯。