请参阅“更改 UINavigationBarButtons 的颜色”
编辑:我删除了链接,因为域已关闭...
这是来自谷歌缓存的文本:
好的,这是另一个快速提示。 “如何更改工具栏上按钮的颜色。”当然,这可以应用于任何工具栏,但我将在 UINavigationBar 上演示该过程。
上图只显示了几种颜色。事实上,您可以将按钮设置为任何您想要的颜色。极好的!代码也很简单。我们要做的第一件事是打开任何将导航栏按钮变为不同颜色的对象的头文件,并声明前向类 UINavigationButton。您可以通过遍历 UINavigationBar 的子视图、读取其子视图的类名称或在您有越狱设备时通过类转储 UIKit 来获取此类。
在你的接口声明之前添加下面一行:
@class UINavigationButton;
现在,在标题中声明一个新方法,我们将使用它来实际更改按钮的颜色。
- (void)changeNavigationButtonColorToColor:(UIColor *)newColor
或者类似上面那行代码的东西。
现在,打开对象的实现文件并实现上述方法。在文件的任何位置,添加以下方法:
- (void)changeNavigationButtonColorToColor:(UIColor *)newColor {
for (UIView *view in self.navigationController.navigationBar.subviews) {
NSLog(@"%@", [[view class] description]);
if ([[[view class] description] isEqualToString:@"UINavigationButton"]) {
[(UINavigationButton *)view setTintColor:newColor];
}
}
}
正如您在上面看到的,这实际上比最初看起来要容易得多。我们首先要做的是使用 NSFastEnumeration 设置一个 for 循环来遍历 UINavigationBar 的子视图。然后我们输出子视图的类名,以备将来参考。如果类名是 UINavigationButton,那么我们就有了我们的视图。我们所做的只是在 UINavigationButton 的情况下设置 tintColor 属性。
就是这样,我们完成了!
或者,如果您想要更广泛的范围,我建议创建一个新的 UINavigationBar 类别并将按钮颜色更改方法放在其中。这是您的方法可以由任何使用 UINavigationBar 的类执行,而无需一遍又一遍地重新创建相同的方法。
请记住,后退按钮和导航按钮不是一回事。您必须单独为后退按钮着色。
和往常一样,这里是演示此代码的示例应用程序的链接:NavButtonColor.zip