使UIBarButtonItem的文本变为粗体

时间:2018-03-10 15:38:09

标签: ios swift cocoa-touch uibarbuttonitem

我想让工具栏(或导航栏)中的条形按钮项目文本变为粗体。我知道如何使用NSAttributedString手动更改字体颜色,如下所示:

button.setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor(red: 242/255, green: 133/255, blue: 94/255, alpha: 1.0)], for: .normal)

我也知道如何使用UIFont.boldSystemFont(ofSize: 12)更改其他内容,例如使用NSFontAttributeName: UIFont(name: "Helvetica-Bold", size: 12.0)的tableview单元格,但这不能用于上述内容。

是否有一种简单的方法来设置UIBarButtonItem粗体?

*编辑:其他类似的已回答问题显示只是使用CGRect将字体类型更改为Helvetica-Bold,但是有没有办法让实际的系统字体加粗,或者是Helvetica-Bold的确切等效于系统字体粗体?

1 个答案:

答案 0 :(得分:-3)

我认为它可以帮助你

    extension NSMutableAttributedString {
    @discardableResult func bold(_ text: String) -> NSMutableAttributedString {
        let attrs: [NSAttributedStringKey: Any] = [.font: UIFont(name: ""AmericanTypewriter-Bold"", size: 12)!]
        let boldString = NSMutableAttributedString(string:text, attributes: attrs)
        append(boldString)

        return self
    }

    @discardableResult func normal(_ text: String) -> NSMutableAttributedString {
        let normal = NSAttributedString(string: text)
        append(normal)

        return self
    }
}

并使用如下

    let formattedString = NSMutableAttributedString()
formattedString
    .bold("Bold Text")

button.setTitle(formattedString, for: .normal)