uikit – iOS 7 Tint Color – UINavigationItem的backBarButtonItem在initWithImage时不起色:

前端之家收集整理的这篇文章主要介绍了uikit – iOS 7 Tint Color – UINavigationItem的backBarButtonItem在initWithImage时不起色:前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我使用 – [UIBarButtonItem initWith Image:style:target:selector:]创建条形按钮项目时,我无法应用色彩颜色的导航项的后退按钮项.

使用图像作为视图控制器后台上下文不再可以吗?我似乎没有在HIG中找到任何指示,或者其中已被弃用或不鼓励的地方.

这是我的代码

UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"camera-navigation_item_back"]
                                                                  style:UIBarButtonItemStyleBordered
                                                                 target:nil
                                                                 action:nil];
[navItem setBackBarButtonItem:barButtonItem];

iOS 7结果:

iOS 6结果:

编辑:如果我尝试使用其中一个系统项目(加号,垃圾箱等)作为我的后退按钮,Apple将图像替换为标题“Back”.这在iOS 6和7中实际上是一样的.

解决方法

将图像的渲染模式设置为UIImageReneringModeAlwaysTemplate(该主题在上一个答案中提到的WWDC视频的33:00附近):
UIImage *backButtonImage = [UIImage imageNamed:@"imageName.png"];
backButtonImage = [backButtonImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
UIBarButtonItem * backButton = [[UIBarButtonItem alloc]
                               initWithImage:backButtonImage
                               style:UIBarButtonItemStylePlain
                               target:nil
                               action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];
[[[self navigationItem] backBarButtonItem] setTintColor:[UIColor redColor]];

如果您在AppDelegate.h中全局设置了tintColor,则不需要最后一行:

[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];

猜你在找的iOS相关文章