更改全局 UIBarButtonItem 外观

Change global UIBarButtonItem appearance

我正在使用 Swift 构建一个 iOS 应用程序并想更改 appearance 的全局 UIBarButtonItem .我在 didFinishLaunchingWithOptions.

中这样做

Apple 的文档是这样说的:

func setTitleTextAttributes(_ attributes: [String : AnyObject]?, forState state: UIControlState)

UIBarItem。但是当我尝试这样做时,它只期望 self: UIBarItem。有人遇到过这种情况么?是 Xcode 中的错误还是我做错了什么?

UIBarButtonItem appearance proxy 上调用 setTitleTextAttributes:

Swift 3:

UIBarButtonItem.appearance().setTitleTextAttributes([key : value], for: .normal)

Swift 2.x:

UIBarButtonItem.appearance().setTitleTextAttributes([key : value], forState: UIControlState.Normal)

你试过用UIAppearance协议实现吗?它应该用于全局 сustomizing 一些视觉 类。我可以向您推荐一些这样的代码:

UIBarButtonItem.appearanceWhenContainedInInstancesOfClasses([UINavigationBar.classForCoder()]).setTitleTextAttributes(["attribute" : "value"], forState: .Normal)

希望从代码中清楚地了解工作方式以及如何扩展它。