iOS无法正确更改UIBarButtonItem图像

时间:2011-12-26 16:56:20

标签: ios uinavigationbar uibarbuttonitem

当我尝试更改UINavigationBar的“后退”按钮自定义图标时,我遇到了问题。要实现这一点,我使用以下代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem* leftBtn;
    UIImage* botonVolverImg = [UIImage imageNamed:@"boton_volver.png"]; 

    leftBtn = self.navigationItem.leftBarButtonItem;
    leftBtn.image = botonVolverImg;
}

但是,当视图出现时,您会看到:

a busy cat http://www.timotteo.com.ar/boton.png

(你可以看到旧按钮仍然出现在后面,加上我选择的图像看起来有点拉伸)

我一直在更改 imageInsets 属性,但这似乎不起作用。我也一直在阅读论坛,但无法找到确切的解决方案。

欢迎任何建议!

2 个答案:

答案 0 :(得分:3)

image的{​​{1}}属性与背景图片不对应,只是提供其他上下文的图片。如果您的目标是5.0+,那么最好的选择是使用UIBarButtonItem为条形按钮项设置背景。

答案 1 :(得分:2)

为了补充Mark的答案,如果您的客户要求您支持iOS 4,您可以创建一个UIButton,看起来与您的客户想要的完全一致(即,只是该图像),然后使用{{ 1}} UIBarButton方法创建自己的后退按钮。然后,您可以使用该按钮触发initWithCustomView或您需要的任何适当操作。