在 iOS 6 中,您可以访问 Appearance API 中的一个新方法:
- (void)setBackgroundImage:(UIImage *)backgroundImage
forState:(UIControlState)state
style:(UIBarButtonItemStyle)style
barMetrics:(UIBarMetrics)barMetrics
因此,您可以为每个导航按钮样式设置不同的背景。问题是,它看起来不适用于这种UIBarButtonSystemItemAdd
风格,但它适用于UIBarButtonItemStyleDone
. 这是我的代码片段:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0f)
{
// Works well
[barButton setBackgroundImage:[[UIImage imageNamed:@"nav-button-done.png"] stretchableImageWithLeftCapWidth:7 topCapHeight:0]
forState:UIControlStateNormal
style:UIBarButtonItemStyleDone
barMetrics:UIBarMetricsDefault];
// Not working
[barButton setBackgroundImage:[[UIImage imageNamed:@"nav-button-done.png"] stretchableImageWithLeftCapWidth:7 topCapHeight:0]
forState:UIControlStateNormal
style:UIBarButtonSystemItemAdd
barMetrics:UIBarMetricsDefault];
}
有人知道为什么它不起作用吗?