ios - 在 iOS 10 中更改 UIBarButtonItem 字体

标签 ios swift

我有以下代码,该代码在将我的应用程序更新到 Swift3 之前可以正常工作。

    let barButtonsAppearanceDictionary: [String : AnyObject] = [NSFontAttributeName : UIFont.tangraText(withSize: 17)!,
                                                                NSForegroundColorAttributeName : UIColor.tangraBlue()]
    UIBarButtonItem.appearance().setTitleTextAttributes(barButtonsAppearanceDictionary, for: UIControlState())
    let barButtonsDisabledAppearanceDictionary: [String : AnyObject] = [NSFontAttributeName : UIFont.tangraText(withSize: 17)!,
                                                                        NSForegroundColorAttributeName : UIColor.lightGray]
    UIBarButtonItem.appearance().setTitleTextAttributes(barButtonsDisabledAppearanceDictionary, for: .disabled)

    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.tangraBlue(),
                                                        NSFontAttributeName : UIFont.tangraText(withSize: 22)!]
    UINavigationBar.appearance().tintColor = UIColor.tangraBlue()

它应该更改导航栏项目的字体和颜色,但它不再起作用了。问题不在于字体,因为它在整个应用程序中正确显示。有什么想法吗?

最佳答案

尝试此代码:在 Xcode 8 中测试:

在viewdidLoad中:

   navigationController?.toolbar.setBackgroundImage(UIImage(), forToolbarPosition: UIBarPosition.any, barMetrics: UIBarMetrics.default)
   navigationController?.toolbar.barStyle = UIBarStyle.default
   navigationController?.toolbar.tintColor = UIColor.red
   navigationController?.toolbar.backgroundColor = UIColor.green

更新:

应用程序委托(delegate):

 UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Villa", size: 25.0)!], for: UIControlState.normal)

使用自定义字体的代码的输出:

enter image description here

关于ios - 在 iOS 10 中更改 UIBarButtonItem 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40126571/

相关文章:

swift - 如何更改 MapKit 中用户位置的气泡颜色?

ios - Swift 不在文本字段中显示所有文本

swift - Swift 中字符串操作的复杂性

ios - 使用蓝牙麦克风的 Swift installTap 产生 "chipmunk"音频

ios - 验证后未从所有 View 中删除 View

ios - 当 ViewController 重新出现时保留其值的正确方法

android - 使用react-native检查手机上是否安装了Metamask应用程序

ios - 如何在构建 IPA 时修复 Xcode 6.1 错误

javascript - 如何调用WKWebView的evaluateJavaScript方法

ios - 在 RestKit 中混合 NSManagedObjects 和常规对象