ios - 向 UILabel 添加粗体

标签 ios uilabel bold

我正在尝试弄清楚如何使用在 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/

相关文章:

ios - Swift:对泛型类型 Range 的引用需要参数

iphone - 动态替换 TabBar 项

android - 如何使EditText粗体斜体下划线android

fonts - 如何使 iText 中的文本同时显示为粗体和斜体?

ios - 从保存按钮关闭 View Controller

iphone - 将多个字符串从一个类传递到另一个类

iphone - 将文本设置为自定义表格单元格标签时崩溃

html - 什么会导致粗体标记 <b> 被忽略?

objective-c - 如何创建或分配委托(delegate)人?

iphone - 如果我在 photoshop 中创建了一个 85% 不透明度的 PNG 图像,当我将它添加到我的 iOS 应用程序时,我如何保持相同的不透明度?