web-dev-qa-db-ja.com

UIFont fontWithNameフォント名

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

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

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

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

更新

また、 this が見つかりました。

65
Snowcrash

デバッガー内の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月-UpdateXcodeを使用したカスタムフォント 」の新しいSwift-y参照-Chris Ching作。これは、プロジェクトでカスタムフォントを使用するために不足しているすべてのパーツと組み合わせた新しい方法の優れた価値投稿であるため、更新する必要がありました。

237

UIFontの-​​ ドキュメント は、これについてはかなり明確です。

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

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

NSArray *familyNames = [UIFont familyNames];
5
Alladinian

試して

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);
    }];
}];
3
Ezra

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

https://github.com/Nirma/UIFontComplete

すべてのフォントはシステムFont enumとして表され、ライブラリには、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)
3
Nirma
label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17];
2
brian.clear

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

NSArray *fontFamilies = [UIFont familyNames];

    for (int i=0; i<[fontFamilies count]; i++)
    {
        NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]);
    }
2
Sam B