2.3 系统默认渲染图片为蓝色的解决方案

iOS 7以后,系统默认会把UITabBarController 的图片渲染成蓝色?

系统默认的效果

修改后的效果

  1. 直接修改图的渲染模式


    2.3 系统默认渲染图片为蓝色的解决方案_第1张图片
    修改图的渲染模式
  2. 使用代码,修改渲染模式
UIViewController *home = [[UIViewController alloc]init];
UIImage * img= [UIImage imageNamed:@"图片名"];
//保持原图片样式
img = [img imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
home.tabBarItem.selectedImage = img;
  1. 使用分类,来修改渲染模式(推荐)
    创建分类
    2.3 系统默认渲染图片为蓝色的解决方案_第2张图片
    第一步:

    2.3 系统默认渲染图片为蓝色的解决方案_第3张图片
    第二步:

    分类的代码
#import 
@interface UIImage (Image)
+(instancetype)imageWithOriginalName:(NSString *)name;
@end
#import "UIImage+Image.h"
@implementation UIImage (Image)
+(instancetype)imageWithOriginalName:(NSString *)name {
    UIImage *image = [UIImage imageNamed:name];
    return [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
@end
UIViewController *home = [[UIViewController alloc]init];
//设置选中的image
home.tabBarItem.selectedImage = [UIImage imageWithOriginalName:@"图片名"];

你可能感兴趣的:(2.3 系统默认渲染图片为蓝色的解决方案)