【发布时间】:2012-09-25 13:03:11
【问题描述】:
我知道如何使用-setBackgroundImage: forState: barMetrics: 自定义UIBarButtonItem,但我想为UIBarButtonItemStyleDone 和UIBarButtonItemStylePlain 使用不同的图像。
有没有办法使用UIAppearance 协议来实现这一点?还是每次我想要“完成”样式按钮时都必须设置图像?
(我尝试过使用如下代码:
[[UIBarButtonItem appearance] setBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarButtonItemStyleDone];
但这只是将每个条形按钮设置为“完成”图像。)
谢谢!
【问题讨论】:
-
你想改变按钮点击后的图像吗?
-
我已经自定义了后退按钮。我希望有不同的“正常”栏按钮(例如 iOS 如何使用蓝色按钮表示“完成”和“保存”,但灰色按钮表示“取消”)。
-
@James,一种选择是使用来自
UIBarButtonItem的自定义子类作为完成按钮的CustomDoneBarButtonItem,并将其用作[[CustomDoneBarButtonItem appearance] setBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarButtonItemStyleDone]。每当您添加完成按钮时,请创建此自定义类的对象并添加它。 -
这不起作用,因为当您在子类上调用
appearance时,它会在超类上调用appearance,并且您所有的 UIBarButtonItem 都会获得这种样式。看到这个线程:stackoverflow.com/questions/11022468/…
标签: iphone ios customization uibarbuttonitem uiappearance