我有UIToolbar
(在我的UINavigationController
内)并且有一些UIBarButtonItem
s。
工具栏为blue
(isTranslucent = false
),按钮为white
。默认突出显示颜色为gray
,看起来很丑。
我找到的唯一解决方案是在UIBarButtonItem
触摸事件中更改tintColor
&#39 {s} @IBAction
。但是我有很多UIBarButtonItem
个,而且每个@IBAction
编写大量代码都很烦人。
你知道如何全局更改它,或者至少是子类UIBarButtonItem
来定义它并在任何地方使用这个类吗?
我使用swift 3,部署目标是iOS 9 +
答案 0 :(得分:4)
您的didFinishLaunchingWithOptions
女巫中有AppDelegate
个功能,告诉代表启动过程已基本完成且应用程序已准备就绪。
在那里,您可以使用appearance
和UIBarButtonItem
上的UINavigationBar
。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Text
UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.green], for: .normal)
UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.darkGray], for: .selected)
// Images
UINavigationBar.appearance().tintColor = UIColor.orange
return true
}
答案 1 :(得分:3)
您可以使用appearance全局更改颜色。在<x json="{"connection":"a=\"b\""}"/>
方法
didFinishLaunchingWithOptions
答案 2 :(得分:0)
UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedString.Key.font: UIColor.green], for: .normal)
UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedString.Key.font: UIColor.darkGray], for: .selected)