AJ学IOS 之微博项目实战(3)微博主框架-UIImage防止iOS7之后自动渲染_定义分类
2015-11-29 00:44
477 查看
AJ分享,必须精品
代码
效果:
我们需要改成这样的效果
注意上下对比下原来代码,
选中第二个 original image 就ok了 不过这方法要挨着设置
然后写代码了就是
首先要在头文件导入
然后调用就这样掉
一:效果对比
当我们设置tabBarController的tabBarItem.image的时候,默认情况下会出现图片变成蓝色的效果,这是因为ios7之后会对图片自动渲染成蓝色代码
[code] UIViewController *home = [[UIViewController alloc]init]; //设置标题 home.tabBarItem.title = @"首页"; //设置未选中时候的图片 home.tabBarItem.image = [UIImage imageNamed:@"tabbar_home"]; //设置选中时候的图片 home.tabBarItem.selectedImage = [UIImage imageNamed:@"tabbar_home_selected"]; home.view.backgroundColor = [UIColor blueColor];
效果:
我们需要改成这样的效果
二:解决方法
解决方法有两个,一种是用xcode自带的功能设置,另一种是用纯代码的方式来解决——之前猫猫见过自定义的tabBar。。。弱爆了(有增加了一点牛zhuang掰bi手段 )第一种,代码方式解决
代码:[code] //首页 UIViewController *home = [[UIViewController alloc]init]; home.tabBarItem.title = @"首页"; home.tabBarItem.image = [UIImage imageNamed:@"tabbar_home"]; UIImage *selImage = [UIImage imageNamed:@"tabbar_home_selected"]; //设置渲染模式为原始 home.tabBarItem.selectedImage = [selImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; home.view.backgroundColor = [UIColor blueColor];
注意上下对比下原来代码,
第二种方法
在图片中找到图片 第三个 –》 render as(渲染器) –》 original image(原始的图片)选中第二个 original image 就ok了 不过这方法要挨着设置
三:建立UIImage的分类
直接建立分类 一句代码搞定然后写代码了就是
UIImage+image.h中的代码
[code]// // UIImage+image.h // Created by apple on 15-7-22. // Copyright (c) 2015年 znycat. All rights reserved. // #import <UIKit/UIKit.h> @interface UIImage (image) /** * 加载最原始的图片,没有渲染过 * * @param imageName 图片名称 * * @return UIImage对象 */ +(instancetype)imageWithOriginalName:(NSString *)imageName; @end
UIImage+image.m中的代码
[code]// // UIImage+image.m // Created by apple on 15-7-22. // Copyright (c) 2015年 znycat. All rights reserved. // #import "UIImage+image.h" @implementation UIImage (image) +(instancetype)imageWithOriginalName:(NSString *)imageName { //ios7之后会自动渲染,不让渲染有两种方法 //1:在图片中找到图片 第三个 --》 render as(渲染器) --》 original image(原始的图片) //2:代码设置 UIImage *image = [UIImage imageNamed:imageName]; //设置渲染模式为原始 return [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; } @end
四:调用
这样调用的时候直接一句代码就可以完成了首先要在头文件导入
[code]#import "UIImage+image.h"
然后调用就这样掉
[code] home.tabBarItem.selectedImage = [UIImage imageWithOriginalName:@"tabbar_home_selected"];
相关文章推荐
- AJ学IOS(42)UI之核心动画CAAnimationGroup以及其他
- AJ学IOS(41)UI之核心动画 两行代码搞定3D转场
- AJ学IOS(40)UI之核心动画_抖动效果_CAKeyframeAnimation
- AJ学IOS(39)UI之核心动画之CABasicAnimation(基础动画)
- AJ学IOS(38)UI之核心动画简介
- AJ学IOS(37)UI之CALayer
- AJ学IOS(36)UI之手势事件旋转_缩放_拖拽
- AJ学IOS(35)UI之Quartz2D仿真支付宝手势解锁_代理获得密码。
- AJ学IOS(34)UI之Quartz2D画画板的实现
- AJ学IOS(33)UI之Quartz2D雪花飘落效果刷帧
- AJ学IOS(32)UI之Quartz2D矩阵操作和图片剪切
- AJ学IOS(31)UI之Quartz2D图形上下文栈
- AJ学IOS(30)UI之Quartz2D画图片画文字
- AJ学IOS(29)UI之Quartz2D自定义下载控件_画各种图形
- AJ学IOS(28)UI之Quartz2D简单介绍
- AJ学IOS(27)UI之iOSUIKit字符属性NSAttributedString概述
- AJ学IOS(26)UI之iOS抽屉效果小Demo
- AJ学IOS(25)UI之触摸事件
- AJ学IOS(24)UI之注册案例
- AJ学IOS(23)UI之控制器管理