UIbarbutton蓝色而不是背景图像

时间:2013-12-30 15:53:38

标签: ios objective-c uibutton uinavigationbar uibarbuttonitem

我尝试使用自定义png文件为背景添加后退按钮,但每次使用故事板添加背景时,它都会变成蓝色,如下所示:

如何在UIbarbutton上添加背景图片?

enter image description here

后退按钮如下所示:

enter image description here

2 个答案:

答案 0 :(得分:1)

这是iOS 7中按钮中图像的标准行为。图像呈现为模板图像,不透明区域以当前色调颜色着色,透明区域为透明区域。如果要查看图像,则需要使用imageWithRenderingMode:创建图像,并将UIImageRenderingModeAlwaysOriginal作为参数传递。

答案 1 :(得分:0)

您需要以语法方式进行操作。 我已经尝试在故事板中进行,看起来有一个非常奇怪的错误,导致开发人员决定 - 使用文本或使用图像,而不是两者....

- (void)viewDidLoad
{
     [super viewDidLoad];

     [self addButtonsToNavigationBar];

}


- (void)addButtonsToNavigationBar
{
     UIButton *regularButton = [[UIButton alloc] initWithFrame: CGRectMake(0, 0, 100.0f, 30.0f)];
     UIImage *historyButtonImage = [UIImage imageNamed:@"image_name.png"];
      // can set the background color instead of setting an image. 
     [regularButton setBackgroundImage:historyButtonImage forState:UIControlStateNormal];

     [regularButton setTitle:@"Some button name" forState:UIControlStateNormal];
     [regularButton addTarget:self action:@selector(historyButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
     UIBarButtonItem *navigationBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:regularButton];
     self.navigationItem.leftBarButtonItem = navigationBarButtonItem;
}