我正在尝试弄清楚如何使用在 Interface Builder 中定义的字体最好地加粗和取消加粗 UILabel。
我知道我可以做到这一点,例如:
[myLabel setFont:[UIFont boldSystemFontOfSize:14.0]];
但随后我强制字体与它在 IB 中的设计方式可能不同(在样式和大小上)。
我正在寻找本质上可以做到这一点的东西:
[myLabel setBold:TRUE];
或 False,视情况而定。
有办法吗?
最佳答案
不幸的是,UIKit 中没有真正的“粗体”概念。如果您尝试将属性字符串的一部分设置为“粗体”,您实际上是在选择同一字体系列中的粗体字体变体。
你可以这样写一些半黑的东西:
@implementation UIFont (BoldVariant)
- (UIFont *)boldVariant
{
for (NSString *fontName in [UIFont fontNamesForFamilyName:self.familyName]) {
if ([fontName hasSuffix:@"-Bold"]) {
return [UIFont fontWithName:fontName size:self.pointSize];
}
}
// If we couldn't find it, return the same font.
return self;
}
@end
这假定字体遵循标准命名方案。它还假定 fontNamesForFamilyName:
返回任何值。我注意到使用系统字体时,它会返回一个空数组。
关于ios - 向 UILabel 添加粗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19011663/