controller navigationItem.leftBarButtonItem在IOS7中更改颜色

时间:2014-03-25 11:35:59

标签: ios uinavigationbar

我有一个分配给IOS7上的navigationItem.leftBarButtonItem的图像。当我从设计师那里得到它时,导航栏的背景看起来很好。但是当我在IOS7中实现它时,它变得苍白,几乎消失了。

这就是它的设置方式:

UIBarButtonItem *button = [[barButtonItemClass alloc] initWithImage:[UIImage imageNamed:@"nav_menu_icon.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(showLeft:)];
viewController.navigationItem.leftBarButtonItem = button;

它应该是这样的(图片来自我的设计师):

enter image description here

这就是它实现时的样子(在模拟器或手机上):

enter image description here

解决方案是什么?

3 个答案:

答案 0 :(得分:4)

您应该将导航栏的色调颜色设置为色调条中的所有项目。

一个不错的解决方案是使用iOS 5中引入的UIAppearance协议。 在你AppDelegate的applicationDidFinishLaunching方法中输入以下代码:

[[UINavigationBar appearance] setTintColor: [UIColor whiteColor]];

注意,我目前无法试用该代码。

干杯!

答案 1 :(得分:0)

这对我来说很好:

 UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithImage:backButtonImage style:UIBarButtonItemStyleBordered target:self action:@selector(backBtnAction)];
    customItem.imageInsets = UIEdgeInsetsMake(0.0, -10, 0, 0);// For adjusting the image
    [customItem setBackgroundVerticalPositionAdjustment:+3.0f forBarMetrics:UIBarMetricsDefault];
    [self.navigationItem setHidesBackButton:YES];// Hide the Default back button before set custom
    [self.navigationItem setLeftBarButtonItem: customItem];

希望原因可能是Tint

答案 2 :(得分:0)

试试这个,可以帮到你;

//解决您的框架问题。

UIImage * bgImg = [UIImage imageNamed:@"nav_menu_icon.png"];
UIButton *leftButton = [[UIButton alloc] initWithFrame: CGRectMake(x, y, bgImg.size.width, bgImg.size.width)];
viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftButton];

同时将tintColour更改为清除颜色。