0

我正在尝试更改导航栏颜色,并使用以下著名命令进行更改:

navController.navigationBar.tintColor = [UIColor colorWithRed:57/255.0 green:50/255.0 blue:36/255.0 alpha:0];

(或阿尔法:1)

问题是颜色显示为渐变色(顶部边缘为白色,按钮为黑色) - 我怎样才能摆脱这种“效果”并使我的颜色均匀

4

2 回答 2

0

要删除渐变,您需要子类化UINavigationBar并实现drawRect:以绘制您选择的颜色。

于 2013-08-08T20:01:37.133 回答
0

如果你不想子类化,你总是可以用你想要的颜色制作一个 1x1 图像并将其设置为栏的背景图像:

UIImage *image = [self imageWithColor:[UIColor redColor]];
[self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];


- (UIImage *)imageWithColor:(UIColor *)color {
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}

imageWithColor 的来源:

于 2013-08-08T20:27:53.227 回答