以编程方式更改标签栏和导航栏的颜色

时间:2011-12-25 17:57:26

标签: iphone objective-c ios uinavigationcontroller uitabbarcontroller

UITabBarController的默认颜色为黑色,UINavigationController的默认颜色为蓝色。我需要将此颜色更改为其他颜色。我该如何以编程方式执行此操作?

我想我发现如何更改导航栏的颜色,但我不懂代码 [navBorder setBackgroundColor:[UIColor colorWithWhite:200.0f/255.f alpha:0.8f]];

我不明白colorWithWhite的作用是什么?

无论如何我如何为UITabBarController添加颜色?

3 个答案:

答案 0 :(得分:4)

要更改iOS 5中的颜色,请设置UITabBarController的tintColor tabBar。以下是我这样做的一个例子:

https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/ch19p533tabBarController/p464p475tabBarController/AppDelegate.m

(您可以下载该项目并亲自试用。)

colorWithWhite:alpha:是设置灰色的快捷方式,可能具有透明度。

答案 1 :(得分:3)

要以编程方式更改UITabBar的颜色,您可以使用tintcolor属性,以下代码行将帮助您

self.navigationController.navigationBar.tintColor= [UIColor redColor];

更改标签栏颜色

tabBar.tintColor = [UIColor greenColor];

答案 2 :(得分:1)

iOS 5中有一个外观代理

UIAppearance.h class

@Protocol UIAppearance <NSObject>
+(id) appearance ;
+(id) appearanceWhenContainedIn:(Class <UIAppearanceContainer> containerClass,..)
...

@end

#define UI_APPEARANCE_SELECTOR

这将帮助您根据需要更改控件的外观... 您还可以观看WWDC 2011 Session Video的“自定义UIKit控件的外观”以获取更多信息。

例如: -

[[UINavigationBar appeareance] setBackGroundImage:[UIImage imageNamed:@"navBackground"] forBarMetrics:UIBarMetricsDefault];

它会将导航栏图像更改为应用程序资源文件夹中的navBackground图像,并将导航栏指标设置为默认值。

[[UIButton ButtonWhenContainedIn:[CustomViewController Class],[UINavigationController Class],nil] setTitleColor:[UIColor redColor] forControlState:UIControlStateNormal];

当包含在此层次结构中时,它会将按钮的标题颜色设置为红色。