69

UIFont用の特定のフォントが必要だとします。それが何と呼ばれているのかどうやってわかりますか?

たとえば、このコードを使用したい場合:

[someUILabelObject setFont:[UIFont fontWithName:@"American Typewriter" size:18]];

正確なフレーズ「AmericanTypewriter」をどこからコピーしますか。Xcodeにヘッダーファイルはありますか?

アップデート

これも便利です。

4

6 に答える 6

242

Debugger 内の Quick Win として興味深いかもしれません。

(lldb) po [UIFont fontNamesForFamilyName:@"Helvetica Neue"]

(id) $1 = 0x079d8670 <__NSCFArray 0x79d8670>(
HelveticaNeue-Bold,
HelveticaNeue-CondensedBlack,
HelveticaNeue-Medium,
HelveticaNeue,
HelveticaNeue-Light,
HelveticaNeue-CondensedBold,
HelveticaNeue-LightItalic,
HelveticaNeue-UltraLightItalic,
HelveticaNeue-UltraLight,
HelveticaNeue-BoldItalic,
HelveticaNeue-Italic
)

2018 年 11 月 - 更新「 Xcode を使用したカスタム フォント 」の新しい swift-y リファレンス- Chris Ching 著。これは、プロジェクトでカスタムフォントを使用するためのすべての欠落部分と組み合わせた新しい方法の非常に価値のある投稿であるため、更新する必要がありました.

于 2012-07-31T13:36:45.283 に答える
6

ドキュメントはこれについてUIFontかなり明確です:

このfontNamesForFamilyName:メソッドを使用して、特定のフォントファミリの特定のフォント名を取得できます。(:これはクラスメソッドです)

次のような名前を取得できます。

NSArray *familyNames = [UIFont familyNames];
于 2012-06-18T13:32:55.560 に答える
3

試す

NSArray *familyNames = [UIFont familyNames];
[familyNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
    NSLog(@"* %@",obj);
    NSArray *fontNames = [UIFont fontNamesForFamilyName:obj];
    [fontNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
        NSLog(@"--- %@",obj);
    }];
}];
于 2013-10-29T22:26:53.077 に答える
3

この問題を解決するためにライブラリを作成しました:

https://github.com/Nirma/UIFontComplete

すべてのフォントはシステムFont列挙型として表され、ライブラリは、read me でカスタム フォントと共に使用する方法も詳しく説明しています。

基本的にこれ:

let font = UIFont(name: "Arial-BoldItalicMT", size: 12.0)

次のいずれかに置き換えられます。

let font = UIFont(font: .arialBoldItalicMT, size: 12.0)

またはこれ:

let myFont = Font.helvetica.of(size: 12.0)
于 2017-05-11T09:20:00.793 に答える
2

これは、プロジェクト内のすべてのフォント名を取得する方法です。それだけです... 3行のコード

NSArray *fontFamilies = [UIFont familyNames];

    for (int i=0; i<[fontFamilies count]; i++)
    {
        NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]);
    }
于 2014-02-07T03:46:36.093 に答える