伊巴布托主义在ios6中看起来很糟糕

伊巴布托主义在ios6中看起来很糟糕,ios,ios6,ios7,uinavigationbar,Ios,Ios6,Ios7,Uinavigationbar,我正在为我的应用程序使用NavigationBar。在iOS7中,我的导航leftButtonItem图标显示良好()。但在iOS6上,它看起来是这样的: 我的代码: _item2 = [[UINavigationItem alloc] init]; _item2.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"sliderMenu.png"] style:UIBarButtonI

我正在为我的应用程序使用NavigationBar。在iOS7中,我的导航leftButtonItem图标显示良好()。但在iOS6上,它看起来是这样的:

我的代码:

_item2 = [[UINavigationItem alloc] init];

_item2.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"sliderMenu.png"] style:UIBarButtonItemStylePlain target:self action:@selector(revealMenu:)];

[self.navigationBar pushNavigationItem:_item2 animated:NO];
我如何解决这个视觉问题,而不是在iOS6中也可以正常工作

致以最良好的祝愿

Onder.

看看:

以及:

您需要为按钮创建自定义透明背面图像,并将其设置为ios 6的条形按钮的背景图像:

[[UIBarButtonItem appearance] setBackgroundImage:clearImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackgroundImage:clearImage forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
//编辑:我首先认为它是一个后退按钮,你需要像下面这样调整大小:

UIImage *buttonBack30 = [clearImage resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 6)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack30 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
我使用以下代码创建了clearImage,但您只需创建任意颜色的34x60图像即可:

+ (UIImage *)imageWithColor:(UIColor *)color andSize:(CGRect)rect {
// Create a 1 by 1 pixel context
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0);
[color setFill];
UIRectFill(rect);   // Fill it with your color
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return image;
}


谢谢,它看起来会解决我的问题,所以我应该在我的应用程序中应用整个ButtonItem,而不是在IOS6中正确工作。您只能在ios 6中应用它,使用:if([[[UIDevice currentDevice]systemVersion]floatValue]<7)
UIImage *clearImage = [self imageWithColor:[UIColor clearColor] andSize:CGRectMake(0, 0, 34, 60)];

    [[UIBarButtonItem appearance] setBackgroundImage:backgroundImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [[UIBarButtonItem appearance] setBackgroundImage:backgroundImage forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];