如何更改导航项的字体?
How do I change font for navigation items?
我知道这一定很简单,但它让我望而却步:
我在 UINavigationController 中有代码可以很好地设置导航栏标题的字体,以及背景颜色和导航项的颜色:
override func viewDidLoad() {
super.viewDidLoad()
let navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.tintColor = UIColor.white
navigationBarAppearace.barTintColor = UIColor(colorLiteralRed: 46/255, green: 99/255, blue: 201/255, alpha: 1.0)
navigationBarAppearace.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "OpenSans", size: 17)!]
}
但我无法更改导航项的字体。我尝试了一些东西,包括(在同一个 viewDidLoad 中):
self.navigationItem.backBarButtonItem?.setTitleTextAttributes([ NSFontAttributeName: UIFont(name: "OpenSans", size: 17)!], for: UIControlState.normal)
以及(在使用导航栏的其中一个 ViewController 的 viewDidLoad 中:)
self.navigationController?.navigationItem.backBarButtonItem?.setTitleTextAttributes([ NSFontAttributeName: UIFont(name: "OpenSans", size: 17)!], for: UIControlState.normal)
我在 plist 中有该字体,并且正在项目的其他部分成功使用它。我想我只是想以错误的方式做这件事,有人可以帮忙吗?
您可以更改 UINavigationViewController 中所有 UIBarButtonItem 的外观 class:
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: font!], for: UIControlState.normal)
在此处查看更多详细信息:Change font of back navigation bar button
如果 OpenSans
不在 plist 文件中你会得到 fatal error: unexpectedly found nil while unwrapping an Optional value
所以尝试
override func awakeFromNib() {
let navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.tintColor = UIColor.white
navigationBarAppearace.barTintColor = UIColor(colorLiteralRed: 46/255, green: 99/255, blue: 201/255, alpha: 1.0)
navigationBarAppearace.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "OpenSans", size: 17)!]
}
我知道这一定很简单,但它让我望而却步:
我在 UINavigationController 中有代码可以很好地设置导航栏标题的字体,以及背景颜色和导航项的颜色:
override func viewDidLoad() {
super.viewDidLoad()
let navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.tintColor = UIColor.white
navigationBarAppearace.barTintColor = UIColor(colorLiteralRed: 46/255, green: 99/255, blue: 201/255, alpha: 1.0)
navigationBarAppearace.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "OpenSans", size: 17)!]
}
但我无法更改导航项的字体。我尝试了一些东西,包括(在同一个 viewDidLoad 中):
self.navigationItem.backBarButtonItem?.setTitleTextAttributes([ NSFontAttributeName: UIFont(name: "OpenSans", size: 17)!], for: UIControlState.normal)
以及(在使用导航栏的其中一个 ViewController 的 viewDidLoad 中:)
self.navigationController?.navigationItem.backBarButtonItem?.setTitleTextAttributes([ NSFontAttributeName: UIFont(name: "OpenSans", size: 17)!], for: UIControlState.normal)
我在 plist 中有该字体,并且正在项目的其他部分成功使用它。我想我只是想以错误的方式做这件事,有人可以帮忙吗?
您可以更改 UINavigationViewController 中所有 UIBarButtonItem 的外观 class:
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: font!], for: UIControlState.normal)
在此处查看更多详细信息:Change font of back navigation bar button
如果 OpenSans
不在 plist 文件中你会得到 fatal error: unexpectedly found nil while unwrapping an Optional value
所以尝试
override func awakeFromNib() {
let navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.tintColor = UIColor.white
navigationBarAppearace.barTintColor = UIColor(colorLiteralRed: 46/255, green: 99/255, blue: 201/255, alpha: 1.0)
navigationBarAppearace.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "OpenSans", size: 17)!]
}