如何更改导航栏的默认蓝色颜色?
感谢。
答案 0 :(得分:4)
UINavigationBar
类具有UIColor *tintColor
属性,您可以在代码中进行更改。
或者,此属性也在InterfaceBuilder UI设计工具中公开。
答案 1 :(得分:4)
假设您已经以编程方式而不是在Interface Builder中添加了导航栏,只需将其放在viewDidLoad方法中即可。
self.navigationController.navigationBar.tintColor = [UIColor grayColor];
答案 2 :(得分:0)
TintColor属性不会影响导航栏的默认子视图作为底部边框和阴影。有时候覆盖导航栏的布局很有用。
尽管navigationBar是UINavigationController的只读属性,但您可以避免 这个限制是“setValue:forKey:”。该方法已获得成功提交至AppStore的5个申请的批准。
您可以根据需要继承UINavigationBar并更改drawRect:方法。 例如,
@implementation CustomNavigationBar
- (void) drawRect:(CGRect)rect
{
[super drawRect:rect];
UIImage *backgroundImage = ImageFromColor(WANTED_COLOR);
[backgroundImage drawInRect:rect];
}
您可以继承UINavigationController并更改initWithRootViewController:
- (id) initWithRootViewController:(UIViewController *)rootViewController
{
self = [super initWithRootViewController:rootViewController];
if (self)
{
CustomNavigationBar *navBar = [CustomNavigationBar new];
[self setValue:navBar forKey:@"navigationBar"];
}
return self;
}
此外,您可以通过为UINavigationController创建Category并为initWithRootViewController实现方法调整来改变这种方法:
P.S。昨天我的新应用程序出现在AppStore,没有任何问题。