2

Core Graphics は、UIFont が受け入れるものとは異なるフォント名を必要としていることがわかりました。

たとえば、CG は「Helvetica Bold」を受け入れますが、「Helvetica-Bold」は受け入れませんが、UIFont はその逆です。

各コンテキストに適した名前を明確にする、オンラインで入手できるフォントの包括的なリストはありますか?

ありがとう。

4

2 に答える 2

2

このリンクのコードは次のとおりですが、強化されています。それはのためだけですUIFont:

for (NSString *familyName in [UIFont familyNames])
{
    NSLog(@"----------------");
    NSLog(@"FAMILY: %@", familyName);
    for(NSString *fontName in [UIFont fontNamesForFamilyName:familyName])
    {
        NSLog(@"  %@", fontName);
    }
}

しかし、これらの名前もうまく機能するようですCGFontRefので、(例えば)以下を使用してください:

CGContextSelectFont (context, "Didot-Bold", FONT_SIZE, kCGEncodingMacRoman);

もちろん、 ...font.fontName.UTF8Stringから取得するために使用できます。UIFont

于 2011-10-16T15:28:52.247 に答える
1

UIFont で使用されるフォント名は、フォントの作成者によって異なります。イタリック体のフォント名が で終わるIta場合もあれ-Italicば、明確な命名規則がない場合もあります。すべての違いを処理し、すべてのフォント ファミリとフォント スタイルの組み合わせに対して適切な UIFont を返す実装を思いついたので、フォント名をハードコーディングする必要はありません。http://eclipsesource.com/blogs/2012/07/26/uifont-from-a-css-definition/で確認できます。

そこで提供するコードを使用すると、目的の UIFont を次のように簡単に取得できます。

UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-size:17px; font-weight: bold; font-style: italic;"];

于 2012-07-27T11:21:57.407 に答える