iOS无法正确更改UIBarButtonItem图像
我在尝试更改UINavigationBar的“后退”按钮自定义图标时出现问题。为了实现这样的事情,我使用下面的代码:iOS无法正确更改UIBarButtonItem图像
- (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财产,但似乎并没有工作。我也一直在阅读论坛,但无法找到确切的解决方案。
欢迎任何建议!
为了补充马克的回答,如果你的客户需要你支持的iOS 4,您可以创建一个UIButton
看起来正是你的客户是怎么想(即,只是图像),然后使用UIBarButton
的initWithCustomView
方法创建您自己的后退按钮。然后,您可以使用该按钮触发popViewController
或您需要的任何适当的操作。
这正是我所寻找的。 – 2011-12-26 18:43:42
image
属性UIBarButtonItem
不对应于背景图片,只有图片提供了额外的上下文。如果你的目标是5.0+,那么最好的办法就是使用-setBackButtonBackgroundImage:forState:barMetrics:
来设置条形按钮项目的背景。
在这种情况下,因为它特别是我们正在讨论的'后退'按钮,'setBackButtonBackgroundImage:forState:barMetrics: '可能是更好的选择。 ' – lxt 2011-12-26 18:11:21
你当然是对的。编辑。 – 2011-12-26 18:12:10
这似乎是一个很酷的解决方案,但遗憾的是我必须使用的xcode/ios版本(客户的要求)似乎不支持这种方法(我正在讨论setBackButtonBackgroundImage) – 2011-12-26 18:44:42
如果你只是使用文本和字符串标题,你不能只在你的UIBarButtonItem上设置'title'属性吗?对我来说似乎没有多少麻烦。 – 2011-12-26 17:04:33
嗨@MichaelDautermann,这似乎是一个好主意,但我的客户想要这个特定的图像,所以我必须让它工作 – 2011-12-26 17:59:02