我想使用渐变来改变导航控制器的backButton的颜色。
我更改了navigatonBar的颜色,但无法更改backButton的颜色。
如果我使用self.navigationController.navigationBar.tintColor
bar和backButton的颜色都改变了但是我想要像navigationBar那样使用渐变
CGRect navFrame = self.navigationController.navigationBar.frame;
navFrame.origin.y = 0.0f;
[self.navigationController.navigationBar.layer insertSublayer:[AddGradient addGradientToNavigationBar:navFrame] atIndex:0];
addGradientToNavigationBar的代码是
+ (CAGradientLayer*)addGradientToNavigationBar:(CGRect)navRect {
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = navRect;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0] CGColor],
(id)[[XAppDelegate getColor] CGColor], nil];
return gradient;
}
任何帮助将不胜感激。
答案 0 :(得分:1)
实施以下代码:
[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];
用以下内容替换redColor以调整按钮的颜色:
colorWithRed:0/255.0 green:144/255.0 blue:200/255.0 alpha:1.0// pick your color using this
请务必将其放入推送的视图控制器中。不是您想要查看此后退按钮颜色的视图控制器。
答案 1 :(得分:0)
如果您的栏和按钮的颜色不必动态,我认为最好的方法是使用iOS 5 UIAppearance protocol。 创建一个可伸缩的图像(即,可以根据需要通过iOS重复部分)并执行以下操作:
[[UINavigationBar appearance] setBackgroundImage: [UIImage imageNamed:@"BarGradient.png"]
forBarMetrics: UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackgroundImage: [[UIImage imageNamed:@"BarButtonScalableGradient.png"]
resizableImageWithCapInsets: UIEdgeInsetsMake(15, 6, 15, 6)]
forState: UIControlStateNormal
barMetrics: UIBarMetricsDefault];
这有帮助吗?