[转]关于UIImageRenderingMode

转载自:http://www.jianshu.com/p/d8e31684146d

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,即UIImage是否使用Tint Color取决于它显示的位置。其他情况可以看下面的图例

1474172285-1341-4673-140117110629-1

图例

最后

修改上面的代码,将两者结合到一起
UIImageRenderingMode使用:

  UIImage *img = [UIImage imageNamed:@"test.png"];
  img=[img imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

文/嘻嘻zhy(简书作者)
原文链接:http://www.jianshu.com/p/d8e31684146d
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

Leave a Reply

Your email address will not be published. Required fields are marked *