4

在我的应用程序中,我想更改 bacBarButtonItem 的颜色。可以改变颜色吗?或者我必须把它的图像。如果是图像,请告诉我如何放置图像的代码。

4

4 回答 4

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

一定要把它放在推送的视图控制器中。不是您想要查看此后退按钮颜色的视图控制器。

于 2012-08-20T17:47:33.613 回答
4

Praveen-K 的答案是正确的,但请记住,您必须在每个视图控制器中执行此操作。

从 iOS5 开始,苹果就引入了“外观”的概念。

- (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 的答案是好的并且会起作用,但只是为了让你知道未来。

于 2011-09-21T10:09:01.133 回答
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];
于 2011-09-21T09:36:49.323 回答
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

于 2012-02-19T09:07:00.453 回答