【问题标题】:iOS font names: dashes versus no dashesiOS 字体名称:破折号与无破折号
【发布时间】:2011-11-05 12:47:30
【问题描述】:

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

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

是否有任何在线可用的综合字体列表来阐明适合每种上下文的名称?

谢谢。

【问题讨论】:

    标签: ios ipad uifont


    【解决方案1】:

    这是来自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.UTF8String 来获取UIFont....

    【讨论】:

      【解决方案2】:

      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;"];

      【讨论】:

        猜你喜欢
        • 2013-02-04
        • 1970-01-01
        • 1970-01-01
        • 2013-10-09
        • 1970-01-01
        • 2013-06-11
        • 2011-12-17
        • 1970-01-01
        • 2011-08-28
        相关资源
        最近更新 更多