如果我有一个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/