ios – 在Swift中自定义UIBarButtonItem

我试图在AppDelegate中设置UIBarButtonItem的字体,如下所示:
let barButton = UIBarButtonItem.appearance()
barButton.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "AvenirNext",size: 15],forState: UIControlState.normal)

但是它给我一个编译器错误说:

无法使用参数列表类型'($T7,forState:UIControlState)调用’init’

我不知道这是什么意思

我也试过

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 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...