1. ホーム
  2. ios

[解決済み] otfやttfファイルからフォント名を取得する方法を教えてください。

2023-03-11 09:02:55

質問

以前のアプリでカスタムフォントを使用したことがあります。

ファイル名は "ProximaNova-Regular.otf" で、フォントを読み込むために私はただ...

[UIFont fontWithName:@"ProximaNova-Regular" size:20];

これは完璧に動作しました。

さて、この新しいアプリでは、3 つのフォント ファイルがあります...。

Dude_Willie.otf
Impact
handsean.ttf

しかし、これらをどのように読み込めばいいのかがわからない。

私が試したのは

[UIFont fontWithName:<the file name> size:20];

しかし、これではHelveticaを使うことに逆戻りしてしまうだけです。

どのような名前を使えばいいのでしょうか?

どのように解決するのですか?

iOS アプリで新しいフォントを追加して使用するには、次の 4 つの簡単な手順に従います。

  • 追加する あなたの新しいフォント.ttf または あなたの新しいフォント.otf をXcodeプロジェクトに追加します。
  • プロジェクトのinfo.plistに、新しいエントリを追加します。 あなたの新しいフォント.ttf または あなたの新しいフォント.otf UIAppFonts 配列に追加します (この配列のプレーンテキストは 'Fonts provided by application' です)。
  • この時点で、新しく追加した your_new_font を含め、アプリでアクセス可能なすべてのフォントをダンプするために、この一時的なデバッグ コードのチャンクを追加することをお勧めします。

//Swift

    for family: String in UIFont.familyNames {
        print("\(family)")
        for names: String in UIFont.fontNames(forFamilyName: family) {
            print("== \(names)")
        }
    }

//目的語-c

for(NSString *fontfamilyname in [UIFont familyNames]) {
    NSLog(@"family:'%@'",fontfamilyname);
    for(NSString *fontName in [UIFont fontNamesForFamilyName:fontfamilyname]) {
        NSLog(@"\tfont:'%@'",fontName);
    }
    NSLog(@"-------------");
}

  • デバッグ出力で、新しいフォントの 'family' と 'font' の名前を探します。新しいフォント ファミリに対応する「フォント」名として表示されるものを何でも (新しいフォント ファミリに関連する「フォント」は 1 つ以上ある可能性があります) UIFont *myNewFont = [UIFont fontWithName:@"font_name_from_debug_output" size:20] に渡すと、ビジネスになるはずです。