UIFont用の特定のフォントが必要だとします。それが何と呼ばれているのかどうやってわかりますか?
たとえば、このコードを使用したい場合:
[someUILabelObject setFont:[UIFont fontWithName:@"American Typewriter" size:18]];
正確なフレーズ「AmericanTypewriter」をどこからコピーしますか。Xcodeにヘッダーファイルはありますか?
アップデート
これも便利です。
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 著。これは、プロジェクトでカスタムフォントを使用するためのすべての欠落部分と組み合わせた新しい方法の非常に価値のある投稿であるため、更新する必要がありました.
のドキュメントはこれについてUIFont
かなり明確です:
この
fontNamesForFamilyName:
メソッドを使用して、特定のフォントファミリの特定のフォント名を取得できます。(注:これはクラスメソッドです)
次のような名前を取得できます。
NSArray *familyNames = [UIFont familyNames];
試す
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);
}];
}];
この問題を解決するためにライブラリを作成しました:
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)
これは、プロジェクト内のすべてのフォント名を取得する方法です。それだけです... 3行のコード
NSArray *fontFamilies = [UIFont familyNames];
for (int i=0; i<[fontFamilies count]; i++)
{
NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]);
}