我正在尝试更改导航栏颜色,并使用以下著名命令进行更改:
navController.navigationBar.tintColor = [UIColor colorWithRed:57/255.0 green:50/255.0 blue:36/255.0 alpha:0];
(或阿尔法:1)
问题是颜色显示为渐变色(顶部边缘为白色,按钮为黑色) - 我怎样才能摆脱这种“效果”并使我的颜色均匀
我正在尝试更改导航栏颜色,并使用以下著名命令进行更改:
navController.navigationBar.tintColor = [UIColor colorWithRed:57/255.0 green:50/255.0 blue:36/255.0 alpha:0];
(或阿尔法:1)
问题是颜色显示为渐变色(顶部边缘为白色,按钮为黑色) - 我怎样才能摆脱这种“效果”并使我的颜色均匀
要删除渐变,您需要子类化UINavigationBar
并实现drawRect:
以绘制您选择的颜色。
如果你不想子类化,你总是可以用你想要的颜色制作一个 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;
}