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

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

比如

  • 设置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添加一个分类将功能封装起来


封装一个使用原始图片的分类_第1张图片
Snip20170209_2.png
封装一个使用原始图片的分类_第2张图片
Snip20170209_3.png
封装一个使用原始图片的分类_第3张图片
Snip20170209_10.png

在.h文件

#import 

@interface UIImage (Image)

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

@end

在.m文件

封装一个使用原始图片的分类_第4张图片
Snip20170209_11.png
#import "UIImage+Image.h"

@implementation UIImage (Image)

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

@end

你可能感兴趣的:(封装一个使用原始图片的分类)