UIImageRenderingMode
在IOS7中增加创建UITabBarItem的方法的同时新增了 UIImageRenderingMode属性。
typedef NS_ENUM(NSInteger, UIImageRenderingMode) {
UIImageRenderingModeAutomatic, // Use the default rendering mode for the context where the image is used
UIImageRenderingModeAlwaysOriginal, // Always draw the original image, without treating it as a template
UIImageRenderingModeAlwaysTemplate, // Always draw the image as a template image, ignoring its color information } NS_ENUM_AVAILABLE_IOS(7_0);
在该模式的枚举值中,一共存在三个值,
UIImageRenderingModeAutomatic、 UIImageRenderingModeAlwaysOriginal与UIImageRenderingModeAlwaysTemplate。
1.UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。
2.UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。
3.UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。
UIImageRenderingMode属性的默认值是UIImageRenderingModeAutomatic
创建UITabBarIte
在创建UITabBarItem的时候一般会为创建的UITabBarItem赋值三个东西。 标题(title),图片(image),选中时显示的图片(selectedImage)。
tabBarItem.title = @"Two";
tabBarItem.image = [UIImage imageNamed:@"one.png"];
tabBarItem.selectedImage = [UIImage imageNamed:@"two.png"];
现在的IOS7中新增了方法,
- (instancetype)initWithTitle:(nullableNSString *)title image:(nullableUIImage *)image selectedImage:(nullableUIImage *)selectedImage
NS_AVAILABLE_IOS(7_0);
使新建tabBarItem更加方便。现在可以将上面三行代码改为:
tabBarItem= [[UITabBarItem alloc]initWithTitle:@"Two"
image:[UIImage imageNamed:@"one.png"]
selectedImage:[UIImageimageNamed:@"two.png"]];
最后
修改上面的代码,将两者结合到一起
UIImageRenderingMode使用:
UIImage *img = [UIImage imageNamed:@"test.png"];
img=[img imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
综合:
tabBarItem= [[UITabBarItemalloc]initWithTitle:@"Five"
image:[[UIImageimageNamed:@"five.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]
selectedImage:[[UIImageimageNamed:@"five.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]];