问题
How do you to set the tint of this yellow button to be gray? I have tried adding an image, but have had no luck.
Here is the screenshot:
Here is my current code:
- (id)initWithStyle:(UITableViewStyle)style { if (self = [super initWithStyle:style]) { UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Settings", @"") style:UIBarButtonItemStyleDone target:self action:@selector(GoToSettings)]; [addButton setImage:[[UIImage imageNamed:@"bg_table.png"] retain]]; self.navigationItem.rightBarButtonItem = addButton; self.navigationItem.hidesBackButton = TRUE; self.view.backgroundColor = [UIColor blackColor]; } return self; } 回答1:
It is not possible without your custom image.
回答2:
self.navigationItem.rightBarButtonItem.tintColor = [UIColor colorWithRed:0.1f green:0.66f blue:0.26f alpha:0.7]; 回答3:
From iOS 5.0 and on you can use:
[[UINavigationBar appearance] setTintColor:[UIColor yellowColor]]; 回答4:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; [button setBackgroundImage:[UIImage imageNamed:@"button_main.png"] forState:UIControlStateNormal]; [button addTarget:self action:@selector(GotoSettings) forControlEvents:UIControlEventTouchUpInside]; button.frame = CGRectMake(x, y, x1, x2); UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithCustomView:menu]; self.navigationItem.rightBarButtonItem = menuButton; [button release]; [menuButton release]; 回答5:
Actually it's possible without using image for buttons.
viewController.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.16f green:0.36f blue:0.46 alpha:0.8]; 回答6:
when you set your image of the button in navigation bar, you may want to set UIImageRenderingModeAlwaysOriginal for it:
[addButton setImage:[[[UIImage imageNamed:@"bg_table.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] retain]]; here is the reference.
来源:https://stackoverflow.com/questions/1340639/button-color-in-navigation-bar-iphone