UIBarButtonItem覆盖自定义图像颜色 - Objective-c

时间:2016-08-09 13:19:54

标签: ios objective-c

我的UIBarButtonItem存在很大问题。我想根据火炬状态(开/关)来使用自定义图像,但它会将我漂亮的黄色图标覆盖为蓝色"无味"图标。

我错过了哪些想法或链接?

2 个答案:

答案 0 :(得分:2)

从Apple的文档中可以参考以下方法,它可以从iOS 7.0及更高版本获得:

- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode

要与iOS 7.0以下兼容,您必须在运行时检查此方法是否可用。

UIImage *yourImage = [UIImage imageNamed:@"yourButifulImage"];
if ([yourImage respondsToSelector:@selector(isAvailabeImageWithRenderingMode:)]) 
{
   tabBarItem.image = [yourImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
} 
else 
{
   tabBarItem.image = yourImage;
}

希望这能解决您的问题。

答案 1 :(得分:1)

UIImage *myImage = [UIImage imageNamed:@"OnImage"];
myImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithImage:myImage style:UIBarButtonItemStylePlain target:nil action:nil];

根据您的情况,您可以更改图像。