如何通过外观协议设置UIBarButtonItem的tintColor?

时间:2013-02-13 20:58:33

标签: ios objective-c uibarbuttonitem uiappearance

我正在尝试在整个项目中以编程方式为tintColor设置UIBarButtonItems。我在打电话:

[UIBarButtonItem appearance]

然而,在查看Apple的文档后: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIBarButtonItem_Class/Reference/Reference.html

我找不到用于设置tintColor的此类属性。我能找到的最接近的相关方法是:

setBackgroundImage:forState:barMetrics:
setBackgroundImage:forState:style:barMetrics:

但是,这两种方法都用于设置实际的背景图像。是否无法通过tintColor简单地设置按钮UIAppearance

2 个答案:

答案 0 :(得分:10)

也许我没有正确理解这个问题。但是,如果您查看已发布的链接,请在“任务”下进行操作。自定义外观,有一个名为tintColor的属性。

您只需将该属性设置为所需的颜色

即可
[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];

这不适合你吗?

答案 1 :(得分:4)

根据UIAppearance协议,您可以将tintColor设置如下:

  

要在容器类的实例或层次结构中的实例中包含类的实例的外观,请使用appearanceWhenContainedIn:来获取类的外观代理

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]
       setTintColor:myNavBarColor];

这是here,如果你正在寻找的话。{/ p>