在我的应用程序中,我想更改bacBarButtonItem的颜色。 有可能改变颜色吗?或者我必须把它的图像。 并且在图像的情况下告诉我代码如何放置图像。
答案 0 :(得分:10)
如果您只是想更改颜色,可以使用这行代码来完成。
[[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 :(得分:4)
Praveen-K的答案是正确的,但请记住,你必须在每个viewcontroller中都这样做。
从iOS5开始,Apple推出了“外观”概念。
- (void)setBackButtonBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0) UI_APPEARANCE_SELECTOR;
在你的情况下会是这样的
UIImage *image = [UIImage imageNamed:@"imageName.png"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
但正如我所说,Praveen-K的答案还可以,但是会让你知道未来。
答案 2 :(得分:3)
UIImage *image = [UIImage imageNamed:@"imageName.png"];
UIBarButtonItem* backBarButton = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(backButtonAction)];
self.navigationItem.leftBarButtonItem=backBarButton;
[backBarButton release];
答案 3 :(得分:0)
更改后栏按钮项目颜色的另一种方法是使用分段控制
UISegmentedControl *button = [[[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Back", nil]] autorelease];
button.frame = CGRectMake(0, 0, 60, 30);
button.center = self.view.center;
button.momentary = YES;
button.segmentedControlStyle = UISegmentedControlStyleBar;
button.tintColor = [UIColor colorWithRed:0 green:0.1 blue:0.5 alpha:0];
[button addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventValueChanged];
UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
请注意,我们将所需的颜色分配给UISegmentedControl的属性tintColor。 我从这个网站得到了这个想法: http://charles.lescampeurs.org/2011/02/10/tint-color-uibutton-and-uibarbuttonitem