更改全局UIBarButtonItem外观

时间:2015-11-11 18:46:50

标签: ios swift uibarbuttonitem

我正在使用Swift构建iOS应用程序,并希望更改appearance的全局 UIBarButtonItem 。我在didFinishLaunchingWithOptions中执行此操作。

Apple的文档说明了这一点:

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

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

2 个答案:

答案 0 :(得分:6)

setTitleTextAttributes appearance proxy上致电UIBarButtonItem

斯威夫特3:

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

Swift 2.x:

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

答案 1 :(得分:5)

您是否尝试使用UIAppearance协议实现它?它应该用于全局gustomizing一些视觉类。我可以建议你这样的代码:

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

希望从代码中可以清楚地看到工作方式以及如何将其扩展到它。