如何在iPhone/iPad的UILabel上设置粗体和斜体?

154

我该如何在iPhone/iPad的UILabel上设置加粗和斜体?我在论坛上搜索过,但没有帮助到我。有人能帮帮我吗?


如果您正在使用自定义字体但无法设置为斜体,可以尝试此方法。 - Jakehao
请检查我的答案 https://dev59.com/DLfna4cB1Zd3GeqPkwEJ#66885655 - Gurjit Singh
19个回答

3
 btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
 btn.titleLabel.font =  [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];

您可以使用这个方法来加粗标签/按钮字体:

您可以使用这个方法来加粗标签/按钮字体


3

更新 Maksymilian Wojakowski 的精彩答案以适用于 Swift 3。

extension UIFont {
    func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont? {
        guard let descriptorL = self.fontDescriptor.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits)) else{
            return nil
        }
        return UIFont(descriptor: descriptorL, size: 0)
    }

    func boldItalic() -> UIFont? {
        return withTraits(traits: .traitBold, .traitItalic)
    }
}

2
我最近写了一篇关于UIFont API限制及其解决方法的博客文章,你可以在这里看到。
使用我提供的代码,您可以轻松地获取所需的UIFont,如下所示: UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"]; 然后将其设置为您的UILabel(或其他控件)的字体,如下所示: myLabel.font = myFont;

2

正如这些答案中已经提到的,你只需要正确的字体名称。我发现iOSFonts.com是最有帮助的资源,可以准确地知道要使用什么名称。


很好的资源!我在我的iOS设备上浏览了它,找到了一个好看的字体,然后使用 "fontWithName" 得到了一个实例。 - Markus Knappen Johansson

2
这很简单。以下是代码。
[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];

这将会对你有所帮助。

那不会设置为斜体。 - mattsson
这将仅设置为粗体。对于斜体,您可以通过界面构建器使用。 - Ashu

1
许多时候,粗体文本在信息架构方面被视为另一层级,因此不会将粗体和常规文本放在同一行中,因此您可以将其拆分为两个标签/文本视图,一个是常规的,一个是粗体斜体的。并使用编辑器选择字体样式。

1
使用Swift 5

对于style = BOLD

label.font = UIFont(name:"HelveticaNeue-Bold", size: 15.0)
的意思是“样式为中等大小”。
label.font = UIFont(name:"HelveticaNeue-Medium", size: 15.0)

对于style = Thin
label.font = UIFont(name:"HelveticaNeue-Thin", size: 15.0)

1
只是想提一下,
UIFont.systemFont(ofSize: 16, weight: UIFont.Weight.bold)
UIFont.boldSystemFont(ofSize: 16)

他们有不同的结果...


0

已更新至Swift 5,并支持设备的首选大小类别。

// Bold
label.font = UIFont.systemFont(ofSize: UIFont.preferredFont(forTextStyle: .body).pointSize, weight: .bold)

// Italic
label.font = UIFont.italicSystemFont(ofSize: UIFont.preferredFont(forTextStyle: .body).pointSize)

这里发布的其他答案都很好,但是它们有硬编码的点大小。


这应该是新的被接受的答案。 - Jevon718
1
回答完全忽略了问题中的斜体部分。 - inket
更新了答案,包括斜体字。 - rohanphadte

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接