iOSでサポートされているフォントのスタイルを決定する最良の方法は何ですか?
-
24-10-2019 - |
質問
フォントがiOSの太字または斜体のフォントスタイルをサポートするかどうかを判断する簡単な方法を見つけることができません。私の現在のソリューションは、希望するフォントスタイルを備えたCTFONTを作成しようとすることに基づいています。
CTFontRef ctFont = CTFontCreateWithName(fontName, pointSize, NULL);
CTFontRef boldFont = CTFontCreateCopyWithSymbolicTraits(ctFont, 0.0, NULL, kCTFontBoldTrait, kCTFontBoldTrait);
if (boldFont) {
// supports bold font face
}
これは正常に機能しますが、どういうわけかそれを行うための最良の方法のようには感じません。より良い方法はありますか?
解決
uifontを使用している場合、fontnamesforfamilynameを繰り返すことができると思います。
for (NSString *fontName : [UIFont fontNamesForFamilyName:fontName]) {
if ([fontName rangeOfString:@"Bold"].location != NSNotFound) {
//supports bold font face
}
}
たぶんそれほど良くないかもしれません...そして、太字のフォントは常に「太字」というテキストで定義されているわけではなく、いくつかは軽くて中程度を使用します。http://www.iphonedevsdk.com/forum/iphone-sdk-development/6000-list-uifonts-abailable.html
他のヒント
特にカスタムフォントの場合、姓を把握するのが難しい場合があります。通常、すべてのフォントを印刷して、利用可能なフォントをチェックします。これから、大胆な、イタリック、凝縮された大胆さなどのすべてのスタイルを把握することができます
NSArray *familyNames = [UIFont familyNames];
for (NSString *familyName in familyNames)
{
NSSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
NSLog(@"%@", fontNames);
}
所属していません StackOverflow