如果我有一个UIFont对象,是否可以将其转换为粗体?我不知道字体名称,我只有一个UIFont对象。我想要的是一个类似的功能

UIFont *boldFontFromFont(UIFont *input)
{
    return [input derivedFontWithFontWeight:UIFontWeightBold];
}

我如何更改代码以使其正常工作。 (上面的代码不起作用,我只是为了说明这一点而做了。)

提前致谢。

最佳答案

要获得粗体字体,您需要传递字体家族中特定的字体名称。您可以从给定的字体获取字体系列名称,然后列出该系列的所有字体。通常,粗体字体的名称中将包含“bold”,但格式并不严格,例如,可能会有诸如“Helvetica-BoldOblique”之类的变体。您可以从以下代码开始:

- (UIFont *)boldFontFromFont:(UIFont *)font
{
    NSString *familyName = [font familyName];
    NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
    for (NSString *fontName in fontNames)
    {
        if ([fontName rangeOfString:@"bold" options:NSCaseInsensitiveSearch].location != NSNotFound)
        {
            UIFont *boldFont = [UIFont fontWithName:fontName size:font.pointSize];
            return boldFont;
        }
    }
    return nil;
}

关于ios - 如何从常规UIFont创建粗体UIFont?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16015916/

10-13 05:49