我有一个分配给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;
它应该是这样的(图片来自我的设计师):
这就是它实现时的样子(在模拟器或手机上):
解决方案是什么?
答案 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更改为清除颜色。