我正在使用Swift构建iOS应用程序,并希望更改appearance
的全局 UIBarButtonItem
。我在didFinishLaunchingWithOptions
中执行此操作。
Apple的文档说明了这一点:
func setTitleTextAttributes(_ attributes: [String : AnyObject]?, forState state: UIControlState)
代表UIBarItem
。但是当我尝试这样做时,它只需要self: UIBarItem
。有人遇到过这种情况么?这是Xcode中的错误还是我做错了什么?
答案 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)
希望从代码中可以清楚地看到工作方式以及如何将其扩展到它。