我正在尝试更改导航栏颜色,并使用这个着名的命令来执行此操作:
navController.navigationBar.tintColor = [UIColor colorWithRed:57/255.0 green:50/255.0 blue:36/255.0 alpha:0];
(或alpha:1)
问题是颜色显示为毕业生(顶部边缘为白色,按钮颜色为黑色) - 如何摆脱这种“效果”并使我的颜色均匀
答案 0 :(得分:0)
要移除渐变,您需要继承UINavigationBar
并实施drawRect:
以绘制所选颜色。
答案 1 :(得分: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;
}