无法更改导航栏后退按钮的背景图像[重复]

Posted

技术标签:

【中文标题】无法更改导航栏后退按钮的背景图像[重复]【英文标题】:Trouble changing background image of navigationbar back button [duplicate] 【发布时间】:2013-07-11 06:13:32 【问题描述】:

我相信我已经为这个问题尝试了所有其他 SO 解决方案。

我使用以下代码更改导航栏的背景图片后退按钮

UIImage *image = [UIImage imageNamed:@"standard_bt.png"];
        [[UIBarButtonItem appearance] setBackButtonBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

这使得按钮看起来像这样:

没有这段代码,它看起来像这样:

现在,我想要第一张图片的背景图片,以及第二张图片的后退按钮shape强>。

注意:我想在不修改名为“standard_bt.png”的图像的情况下实现这一点

我该怎么做?这可能吗?

【问题讨论】:

【参考方案1】:

你已经做对了。

ios SDK 没有提供方便的方法来根据标准后退按钮的形状更改 UIImage 对象的形状

也就是说,答案是:不,你不能在不改变按钮的背景图像本身的情况下,通过自定义实现一个形状的后退按钮。

【讨论】:

【参考方案2】:

使用您的按钮图像创建自定义按钮。并添加到左侧导航栏。

如下图

UIImage *menuImage = [UIImage imageNamed:@"bar.png"];
    UIButton *menuButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, menuImage.size.width, menuImage.size.height)];
    menuButton.backgroundColor = [UIColor colorWithPatternImage:menuImage];
    UIBarButtonItem *customBarButtonItem_left = [[UIBarButtonItem alloc] initWithCustomView:menuButton];
    [menuButton addTarget:self action:@selector(CallBack:) forControlEvents:UIControlEventTouchDown];
    self.navigationItem.leftBarButtonItem = customBarButtonItem_left;

【讨论】:

以上是关于无法更改导航栏后退按钮的背景图像[重复]的主要内容,如果未能解决你的问题,请参考以下文章

导航栏后退按钮箭头字体 Swift

如何更改 iOS 13 导航栏中的后退按钮图像?

导航栏背景图片

如何在swift 4中的导航栏上添加图像后退按钮

弹出视图时不恢复自定义导航栏背景

更改导航栏中后退按钮的颜色