有UILabel
任何字体,我怎样才能知道它是否已经是粗体?或者我怎样才能让它变得大胆?在 CSS 中,我有一个font-weight
属性。我想要类似的东西。
到目前为止,我发现的所有内容都是您必须设置正确的字体名称。然而,这是不可靠的。Cochin
is的粗体版本Cochin-Bold
,但ArialMT
is not ArialMT-Bold
but的粗体版本Arial-BoldMT
,所以它显然不足以追加-Bold
。(自定义字体的粗体版本也可以具有完全不同的名称)。
我能做的是找到我给定字体系列的所有字体。
__block UIFont *font = myLabel.font;
[[UIFont fontNamesForFamilyName:font.familyName] enumerateObjectsUsingBlock:^(NSString *fontName, NSUInteger idx, BOOL *stop) {
if ([fontName rangeOfString:@"bold" options:NSCaseInsensitiveSearch].location != NSNotFound) {
font = [UIFont fontWithName:fontName size:font.pointSize];
*stop = YES;
}
}];
myLabel.font = font;
但这并不可靠。我可以很容易地得到一个BoldItalic
版本。我可以改进我的检查以避免这种情况,但这并不是一个很好的解决方案。
也许CoreText可以在这里提供帮助?