92

以前のアプリでカスタム フォントを使用しました。

ファイル名は「ProximaNova-Regular.otf」で、先ほど使用したフォントをロードするには...

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

これは完璧に機能しました。

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

Dude_Willie.otf
Impact
handsean.ttf

しかし、これらをロードする方法がわかりません。

私が試してみました

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

しかし、これは Helvetica の使用にフォールバックするだけです。

使用する名前を見つけるにはどうすればよいですか?

4

15 に答える 15

128

TTF を右クリック -> 情報を見る

「フルネーム」はあなたが探しているものです。

それがTTFで私にとってうまくいったことです。

編集:

Get Info の「Full Name」とは異なる名前のフォントを使用しました。

この回答をコンパイルするには、上記のクイック チェックが機能しない場合は、プロジェクトで次のコードを実行します。

for (NSString *fontFamilyName in [UIFont familyNames]) {
    for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) {
        NSLog(@"Family: %@    Font: %@", fontFamilyName, fontName);
    }
}

そして、使用したいフォントの正しい名前を検索してください。

スウィフト 3.0 コード:

for fontFamilyName in UIFont.familyNames{
    for fontName in UIFont.fontNames(forFamilyName: fontFamilyName){
        print("Family: \(fontFamilyName)     Font: \(fontName)")
    }
}
于 2013-05-28T09:27:28.217 に答える
46

iOS でフォ​​ントを使用するには、フォントのFULL NAME (PostScript Name) に基づいてフォントをロードする必要があります。これは、フォントの実際のFILE NAMEとは異なる場合があります (通常は異なります) 。

フォント ファイル「Arial-regular.ttf」の名前を「foo.ttf」に変更したとします。名前を変更したばかりのフォント ファイルに含まれるフォントは、まだ「Arial-regular」のままです。

このスレッドで既にフォント名を取得するプログラムによる優れた方法がいくつかありますが、コマンド ラインを使用する別の方法があります。

MacまたはLinuxを使用している場合は、カスタムフォントがあるディレクトリのコマンドラインからこのスクリプトを実行するだけです(おそらくすでにインストールされているfontconfigfc-scanのユーティリティを使用しますが、そうでない場合は自作経由でインストールできます):brew install fontconfig

for file in "$arg"*.{ttf,otf}; do fc-scan --format "%{postscriptname}\n" $file; done

~/Library/Fontsこれは、私のディレクトリで実行されている上記のコマンドのスクリーンショットです。

ここに画像の説明を入力

上記のスクリプトは、現在のディレクトリ内のすべての.ttfおよびファイルに対して実行され、XCode または他の場所でフォント ファイルを参照するために使用できる各フォントのPostScript 名を出力します。.otf

いくつかの追加情報 (PostScriptName、Filename) といくつかの色分けを使いたい場合は、次の代替スクリプトを実行できます。

for file in "$arg"*.{ttf,otf}; do 
    postscriptname=$(fc-scan --format "%{postscriptname}\n" $file);
    printf "\033[36m PostScript Name:\033[0m %s \e[90m(%s)\033[0m\n" "$postscriptname" "$file";
done

ここに画像の説明を入力

これは、新しいフォント ファイルを追加するたびに AppDelegate.m ファイル内のコードをコピーして貼り付けて名前を出力するよりも少し高速です。これは一般的な方法であり、FontBook でフォントを開いてPostScript 名を調べます。

役立つヒント:ターミナルで上記のスクリプトにエイリアスを設定して、現在のディレクトリ内のすべてのファイルのすべての PostScript フォント名を取得する単一のコマンドを入力するだけでよい場合 (関数が呼び出されるfontnamesので、実行する必要があるのはすべてです)。フォントを含むディレクトリ内のターミナルで入力fontnamesすると、PostScript 名が自動的に出力され、開発ワークフローの時間を節約し、必要なときにこの便利なスクリプトをすぐに使用できるようになります。

お役に立てれば!

于 2017-01-13T14:07:43.460 に答える
6

あなたはこれのために行く名前を取得する方法を知りたい:-

  NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];

  for (NSInteger indFamily=0; indFamily<[familyNames count]; ++indFamily) 
  {
        NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);

        NSArray *fontNames = [[NSArray alloc] initWithArray:
              [UIFont fontNamesForFamilyName:[familyNames objectAtIndex:indFamily]]];

        for (NSInteger indFont=0; indFont<[fontNames count]; ++indFont) 
        {
              NSLog(@"    Font name: %@", [fontNames objectAtIndex:indFont]);
        }
  }

それがあなたを助けることを願っています...

于 2013-05-28T09:28:42.393 に答える
4

プロジェクト/アプリにフォントを追加した後、このコードを追加して (おそらくアプリ デリゲートの didFinishLaunchingWithOptions メソッドに)、アプリで使用可能なすべてのフォントを出力します。そのリストの中から、目的のフォントを特定できるはずです。後で不要なコードを削除することを忘れないでください。

for (NSString *fontFamilyName in [UIFont familyNames]) {
    for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) {
        NSLog(@"Family: %@    Font: %@", fontFamilyName, fontName);
    }
}
于 2014-06-12T13:27:06.717 に答える
3

スウィフト 1.2:

    for familyName in UIFont.familyNames() {
        for fontName in UIFont.fontNamesForFamilyName(familyName as! String) {
            println("\(familyName) : \(fontName)")
        }
    }
于 2015-05-29T02:23:17.580 に答える
1

フォント ファイルの familyNames をログに記録してから、フォントにアクセスします。

// You can log all font family names suing **fontNamesForFamilyName**

NSLog(@" font name %@", [UIFont fontNamesForFamilyName:@"the file name"]);

お役に立てば幸いです。

于 2013-05-28T09:30:49.063 に答える