iOS字体名称:破折号或无破折号

时间:2011-08-28 16:20:18

标签: ios ipad uifont

我发现Core Graphics需要不同于UIFont接受的字体名称。

例如,CG接受“Helvetica Bold”但不接受“Helvetica-Bold”,而UIFont则相反。

是否有在线可用的全面字体列表,阐明了哪些名称适合每种情境?

感谢。

2 个答案:

答案 0 :(得分:2)

以下是this link的代码,但收紧了。这仅适用于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 ....

获取

答案 1 :(得分:1)

UIFont使用的字体名称取决于Font的创建者。有时,斜体的字体名称将以Ita结尾,有时为-Italic - 没有明确的命名规则。 我想出了一个处理所有差异的实现,并为所有font-family +字体样式组合返回正确的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;"];