以编程方式更改标签栏和导航栏的颜色
Posted
技术标签:
【中文标题】以编程方式更改标签栏和导航栏的颜色【英文标题】:Change the color of tabbar and navigation bar programmatically 【发布时间】:2011-12-25 17:57:25 【问题描述】:UITabBarController
的默认颜色为黑色,UINavigationController
的默认颜色为蓝色。我需要将此颜色更改为其他颜色。如何以编程方式执行此操作?
我想我找到了如何更改导航栏颜色但我不明白代码
[navBorder setBackgroundColor:[UIColor colorWithWhite:200.0f/255.f alpha:0.8f]];
我不明白colorWithWhite
是做什么的?
无论如何我如何为UITabBarController
添加颜色?
【问题讨论】:
【参考方案1】:要在 ios 5 中更改颜色,请设置 UITabBarController 的 tabBar
的 tintColor
。这是我这样做的一个例子:
https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/ch19p533tabBarController/p464p475tabBarController/AppDelegate.m
(您可以下载该项目并亲自尝试。)
colorWithWhite:alpha:
是设置灰色的快捷方式,可能带有透明度。
【讨论】:
是的,@MichaelDautermann,注意 iOS 5 中出现的一些非常花哨和怪异的界面。你可以为所有内容着色!【参考方案2】:要以编程方式更改UITabBar
的颜色,您可以使用tintcolor
属性,以下代码行将帮助您解决
self.navigationController.navigationBar.tintColor= [UIColor redColor];
更改标签栏颜色
tabBar.tintColor = [UIColor greenColor];
【讨论】:
【参考方案3】:iOS 5 中有一个外观代理
UIAppearance.h class
@Protocol UIAppearance <NSObject>
+(id) appearance ;
+(id) appearanceWhenContainedIn:(Class <UIAppearanceContainer> containerClass,..)
...
@end
#define UI_APPEARANCE_SELECTOR
这将帮助您根据需要更改控件的外观... 您还可以观看 WWDC 2011 会议视频的“自定义 UIKit 控件的外观”了解更多信息。
例子:-
[[UINavigationBar appeareance] setBackGroundImage:[UIImage imageNamed:@"navBackground"] forBarMetrics:UIBarMetricsDefault];
它将导航栏图像更改为应用程序资源文件夹中的navBackground图像,并将导航栏指标设置为默认值。
[[UIButton ButtonWhenContainedIn:[CustomViewController Class],[UINavigationController Class],nil] setTitleColor:[UIColor redColor] forControlState:UIControlStateNormal];
当包含在此层次结构中时,它将设置按钮的标题颜色为红色。
【讨论】:
以上是关于以编程方式更改标签栏和导航栏的颜色的主要内容,如果未能解决你的问题,请参考以下文章
iOS 7 中 UIActivityViewControllers 的模态状态栏和导航栏文本颜色