子控制器tabBarItem底部选中图片显示为自己配置的 不让系统渲染

本文介绍了如何在iOS应用中自定义tabBarController底部各子控制器的tabBarItem图片,并解决了iOS7环境中图片渲染的问题。通过使用UIImageRenderingModeAlwaysOriginal,确保图片在不同iOS版本下的一致显示效果。

大环境是在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,写的真累,大小写有些没区分 大家见谅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值