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.UTF8StringUIFont...中获取。

于 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 回答