如何更改导航栏,标签栏的颜色?
每次我改变它,我都不会得到我想要的颜色,它可以是渐变红色,也可以是渐变白色/银色。
但无法做到这一点,默认渐变蓝色和灰色看起来都不错,但尝试将其改为任何其他颜色,看起来很糟糕。
任何提示?如何做渐变?
答案 0 :(得分:4)
对于导航栏,您可以使用:
[navigationController.navigationBar setTintColor:[UIColor redColor]; //Red as an example.
这会将导航栏的颜色和所有按钮的颜色设置为特定颜色,在本例中为红色。此属性也可以在Interface Builder中设置。
如果您想进一步自定义它,可以通过对图像进行子类化将UINavigationBar
的背景设置为图像。像这样......
标题文件。
#import <UIKit/UIKit.h>
@interface UINavigationBar (CustomImage)
@end
实施文件。
#import "CustomNavigationBar.h"
@implementation UINavigationBar (CustomImage)
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
if([self isMemberOfClass: [UINavigationBar class]]){
UIImage *image = [UIImage imageNamed:@"bar.png"];
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 drawLayer:layer inContext:ctx];
}
}
@end
然后在Interface Builder中,在Identity选项卡下将UINavigationBar
的类设置为(在本例中)CustomNavigationBar
。
如果您稍微更改代码以使其成为UITabBar
的子类,则它可能与UITabBar
一起使用,但我还没有尝试过。