我想更改UINavigationBar
的颜色,颜色将从图像中获取。
答案 0 :(得分:6)
尝试将对象设置为navigationBar的子视图。
设置色调颜色属性或使用图像
UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:rootController];
controller.navigationBar.tintColor = [UIColor blackColor];
答案 1 :(得分:2)
在iOS 7或更高版本中,请尝试以下操作:
navigationBar.barTintColor = [UIColor redColor];
答案 2 :(得分:1)
如果您仅支持iOS5及更高版本,则可以使用“外观代理”。有a good tutorial for this。
如果必须支持以前的版本,则必须继承UINavigationBar
并覆盖其drawRect
方法。有a good sample code for this。
答案 3 :(得分:0)
试试这个:
CustomNavBar
继承UINavigationBar
类... MainWindow.xib
并更改UINavigationBar class to
CustomNavBar`。代码:
@implementation CustomNavBar (CustomNavBarCategory)
-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
if([self isMemberOfClass:[CustomNavBar class]])
{
UIImage *image;
image=[UIImage imageNamed:@"ImageName"];
CGContextClip(ctx);
CGContextTranslateCTM(ctx, 0, image.size.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextDrawImage(ctx,CGRectMake(0, 0, self.frame.size.width, self.frame.size.height), image.CGImage);
}
else
{
[super.layer drawLayer:layer inContext:ctx];
}
}
@end
答案 4 :(得分:0)
有一种方法可以在xcode 6.4中的故事板中执行此操作。
从文档大纲中选择导航栏
比属性检查器更改条纹色
你也可以选择其他,这将带来颜色选择器
选择滴管,这样可以从图像中选择颜色