AJ学IOS 之微博项目实战(3)微博主框架-UIImage防止iOS7之后自动渲染_定义分类
AJ分享,必须精品
一:效果对比
当我们设置tabBarController的tabBarItem.image的时候,默认情况下会出现图片变成蓝色的效果,这是因为ios7之后会对图片自动渲染成蓝色
代码
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手段 )
第一种,代码方式解决
代码:
//首页
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中的代码
//
// 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中的代码
//
// 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
四:调用
这样调用的时候直接一句代码就可以完成了
首先要在头文件导入
#import "UIImage+image.h"
然后调用就这样掉
home.tabBarItem.selectedImage = [UIImage imageWithOriginalName:@"tabbar_home_selected"];
AJ学IOS 之微博项目实战(3)微博主框架-UIImage防止iOS7之后自动渲染_定义分类的更多相关文章
- AJ学IOS 之微博项目实战(1)微博主框架-子控制器的添加
AJ分享,必须精品 一:简单介绍 这是新浪微博的iOS端项目,来自于黑马的一个实战项目. 主要分成五大模块,本次全部运用纯代码实现,其中会用到很多前面学过得内容,如果有的地方有重复的知识点,说明这个知 ...
- AJ学IOS 之微博项目实战(2)微博主框架-自定义导航控制器NavigationController
AJ分享,必须精品 一:添加导航控制器 上一篇博客完成了对底部的TabBar的设置,这一章我们完成自定义导航控制器(NYNavigationController). 为啥要做自定义呢,因为为了更好地封 ...
- 猫猫学iOS 之微博项目实战(2)微博主框架-自己定义导航控制器NavigationController
猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 一:加入导航控制器 上一篇博 ...
- AJ学IOS 之微博项目实战(5)微博自定义搜索框searchBar
AJ分享,必须精品 一:效果 用UITextField简单定义一个搜索框 二:调用: 调用的代码,很简单,直接init就可以,以后加功能自己添加就行了. - (void)viewDidLoad { [ ...
- AJ学IOS 之微博项目实战(10)微博cell中图片的显示以及各种填充模式简介
AJ分享,必须精品 :一效果 如果直接设置会有拉伸等等的状况,这里主要介绍图片显示的一些细节 二:代码 代码实现其实很简单,微博当中用了一个photos来存放九宫格这些图片,然后用了一个photo类来 ...
- AJ学IOS 之微博项目实战(9)微博模型之时间相关重要操作,判断刚刚,昨天,今年等等
AJ分享,必须精品 一:效果 二:实现代码 /** 1.今年 1> 今天 * 1分内: 刚刚 * 1分~59分内:xx分钟前 * 大于60分钟:xx小时前 2> 昨天 * 昨天 xx:xx ...
- AJ学IOS 之微博项目实战(4)微博自定义tabBar中间的添加按钮
AJ分享,必须精品 一:效果图 自定义tabBar实现最下面中间的添加按钮 二:思路 首先在自己的tabBarController中把系统的tabBar设置成自己的tabBar(NYTabBar),这 ...
- 猫猫学iOS 之微博项目实战(5)微博自己定义搜索框searchBar
猫猫分享.必须精品 原创文章.欢迎转载. 转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 用UITextField简单定义一个搜索框 二:调用 ...
- AJ学IOS 之控制器view显示中view的父子关系及controller的父子关系_解决屏幕旋转不能传递事件问题
AJ分享,必须精品 一:效果 二:项目代码 这个Demo用的几个控制器分别画了不通的xib,随便拖拽了几个空间,主要是几个按钮的切换,主要代码展示下: // // NYViewController.m ...
随机推荐
- 云CRM和本地CRM哪个更好
现在CRM系统按照服务器部署方式的不同分为本地CRM和云CRM两种,本地CRM需要在企业内部部署服务器,而云CRM的服务器则是安装在云服务器上面,很多企业可能不知道应该选择云CRM还是本地CRM.下面 ...
- 控制游戏/app使用期限/过期,证书有效期,弹出公告支持离线使用/后端控制,支持Swift、Objective-C集成非常简单,永久免费框架
CertCheck.framework (for iOS) 只能运行于真机上,切勿在模拟器上使用 这是一个控制游戏/app使用期限(到设定的时间无法打开app),或发布弹出公告永久免费的框架,可以全版 ...
- 目标检测 | RetinaNet:Focal Loss for Dense Object Detection
论文分析了one-stage网络训练存在的类别不平衡问题,提出能根据loss大小自动调节权重的focal loss,使得模型的训练更专注于困难样本.同时,基于FPN设计了RetinaNet,在精度和速 ...
- jq 导航跟随 模拟京东手机端
想做一个导航跟随,但是代码都要下载,自己简单些了一个,css都放html里面了,所以也不用下载直接新建html,然后粘贴,点开就是导航跟随效果 效果如图 <!DOCTYPE html> & ...
- [模板] LCA-最近公共祖先-倍增法
2019-11-07 09:25:45 C.树之呼吸-叁之型-树上两点路径长度 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 7 (4 ...
- NLPer入门指南 | 完美第一步
介绍 你对互联网上的大量文本数据着迷吗?你是否正在寻找处理这些文本数据的方法,但不确定从哪里开始?毕竟,机器识别的是数字,而不是我们语言中的字母.在机器学习中,这可能是一个棘手的问题. 那么,我们如何 ...
- PHP7内核(七):常见变量类型的基本结构
上篇文章讲述了变量的存储结构zval,今天我们就来学习一下几个常见变量类型的基本结构. 一.类型一览 zval中的u1.v.type用来存储变量的类型,而zval.value存储的是不同类型对应的值, ...
- coding++:Idea设置Java类注释模板和方法注释模板
设置类注释模板 1):选择File–>Settings–>Editor–>File and Code Templates–>Includes–>File Header. ...
- AI+BI的未来
术语与缩写解释 缩写.术语 解 释 BI 商业智能(Business Intelligence,简称:BI),又称商业智慧或商务智能,指用现代数据仓库技术.线上分析处理技术.数据挖掘和数据展现技 ...
- C++ STL模板和标准模板库
一.函数模板 #include<iostream> #include<string> using namespace std; template<class T> ...