我试图像这样设置UIBarButtonItem的字体:

let barButton = UIBarButtonItem.appearance()
barButton.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "AvenirNext", size: 15], forState: UIControlState.Normal)

但这会引发编译器错误,提示:



我不知道那是什么意思我也尝试过
barButton.titleTextAttributesForState(UIControlState.Normal) =[NSFontAttributeName...]`

但似乎它是不可分配的

我该如何解决?

最佳答案

UIFont的初始化程序返回一个可选参数,因为它可能由于字体名称拼写错误等原因而失败。

您必须打开包装并检查:

if let font = UIFont(name: "AvenirNext", size: 15) {
    barButton.setTitleTextAttributes([NSFontAttributeName: font], forState: UIControlState.Normal)
}

更新为Swift 3
if let font = UIFont(name: "AvenirNext", size: 15) {
    barButton.setTitleTextAttributes([NSFontAttributeName:font], for: .normal)
}

关于ios - 在文本属性字典中实例化UIFont时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26483671/

10-11 01:04