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

时间:2013-07-11 06:13:32

标签: ios cocoa-touch uinavigationbar uinavigationitem

我相信我已经尝试过所有其他SO解决方案。

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

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

这使按钮显示如下:

enter image description here

没有此代码,它显示如下:

enter image description here

现在,我希望第一张图片中的背景图片,第二张图片的后退按钮形状

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

我该怎么做?这可能吗?

2 个答案:

答案 0 :(得分:1)

你已经做对了。

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

那就是说,答案是:不,你不能通过你的自定义实现形状的按钮而不改变按钮的背景图像本身。

答案 1 :(得分:1)

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

就像下面的

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;