大环境是在tabBarController底部的各个子控制器的显示tabBarItem图片 问题
UIViewController* vc = [UIViewcontroller alloc]init];
vc.tabBarItem.image = [UIImage imageNamed@"图片1"];
vc.tabBarItem.selectedImage = [UIImage imageNamed@"图片2"];
这样直接写的话,在iOS7中不会显示真正的图片2,因为在iOS7中会再次将图片2渲染为蓝色(有时这个挺好看的,但是如果UI什么的非要改,你只能打他改了哈)
所以要想 显示原图,必须做如下操作,告诉他不要 渲染
UIImage * selectedImage = [UIImage imageNamed@"图片2"];
afterSelectedImage = [selectedImage imageWIthRenderMode:uiimageRenderingModeAlwaysDrig];
vc.tabBarItem.selectedImage = afterSelectedImage;
因为调用imageWithRenderMode会返回一张新图片,所以要用afterSlectedImage接收,这样就OK了
不过还有一个小问题大家要注意,这个imageWithRenderMode是在iOS7环境之后可以用,iOS6没有这个方法,因此要做一个判断,iOS6不用做此操作就可以,
不做判断会报错'[UIImage imageWithRenderingMode:]unrecognized selector sent to instance '
顺便说一下 因为是在windows上手写的代码,没有xcode,写的真累,大小写有些没区分 大家见谅
标签:控制器,vc,tabBarItem,选中,selectedImage,UIImage,iOS7,图片 From: https://blog.51cto.com/u_15952281/6038421