封装一个使用原始图片的分类

有些图片显示出来会自动渲染成蓝色

比如

  • 设置tabBarItem的选中图片
vc.tabBarItem.selectedImage = image;
  • 设置UIButtonTypeSystem样式按钮的image时
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
[btn setImage:image forState:UIControlStateNormal];

解决方案

  • 再次产生一张不会进行渲染的图片
// 加载图片
UIImage *tempImage = [UIImage imageNamed:@"tabBar_essence_click_icon"];
// 产生一张不会进行自动渲染的图片
UIImage *selectedImage = [tempImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
vc.tabBarItem.selectedImage = selectedImage;
  • 直接在xcassets文件中配置


    Snip20151105_1.png

当然我们可以个UIImage添加一个分类将功能封装起来


Snip20170209_2.png
Snip20170209_3.png
Snip20170209_10.png

在.h文件

#import <UIKit/UIKit.h>

@interface UIImage (Image)

+ (UIImage *)imageOriginalWithName:(NSString *)imageName;

@end

在.m文件

Snip20170209_11.png
#import "UIImage+Image.h"

@implementation UIImage (Image)

+ (UIImage *)imageOriginalWithName:(NSString *)imageName
{
    UIImage *image = [UIImage imageNamed:imageName];
    return [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}

@end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,242评论 25 708
  • 而要实现事务,就不得不用到锁。一个SQLite数据库文件有5种锁的状态: UNLOCKED:表示数据库此时并未被读...
    Crazy2015阅读 2,532评论 0 1
  • 你肯定也遇到过熊孩子的袭击。 他们来你家串门的时候,在你房间里乱翻乱拿,随意损坏你的手办。家长却说:“他不是故意的...
    槽值阅读 5,875评论 32 180
  • 文/蓝安 今天是父亲节,一家四口决定蒙山半日游。父母牵手走在前面,弟弟和我身后相伴,四个人浅笑轻谈地度过半日时光。...
    水墨清欢阅读 283评论 0 2
  • 雷过涨溪池,风吹壮柳枝。 泛舟当趁早,播种莫疑迟。 老者尊时序,书生奉宋词。 谁家高考客,又唱木兰诗。
    南风窗A阅读 191评论 3 1