UIbarbutton 蓝色而不是背景图片

Posted

技术标签:

【中文标题】UIbarbutton 蓝色而不是背景图片【英文标题】:UIbarbutton blue instead of background image 【发布时间】:2013-12-30 15:53:37 【问题描述】:

我正在尝试使用自定义 png 文件为背景添加后退按钮,但每次我使用情节提要添加背景时,它都会变成这样的蓝色:

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

后退按钮如下所示:

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

你需要在语法上做到这一点。 我已经尝试在情节提要中这样做,看起来有一个非常奇怪的错误,导致开发人员决定 - 使用文本或使用图像,而不是两者....

- (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;

【讨论】:

我已经尝试过您的代码,但没有显示任何内容。真的很奇怪。

以上是关于UIbarbutton 蓝色而不是背景图片的主要内容,如果未能解决你的问题,请参考以下文章

使 SliverAppBar 具有图像作为背景而不是颜色

在 StoryBoard 中为 UIBarButton 显示图像而不是文本

SelectableText.rich 选择的背景颜色,而不是 TextStyle

如何将图像设置为画布背景而不是让它在 Android Studio/JavaScript 中填充颜色

多个滚动视图?

UICollectionView 2 不同的背景颜色