美文网首页
10.UIImage之渲染模式(randeringMode)

10.UIImage之渲染模式(randeringMode)

作者: 小笨憨 | 来源:发表于2017-06-08 17:24 被阅读0次

    着色(Tint Color)是iOS7界面中的一个重大改变,你可以设置一个UIImage再渲染时是否使用当前视图的TintColor。iOS7中UIImage新增了一个只读属性:randeringMode,对应的还有一个新增方法:imageWithRenderingMode:。

    // Create a version of this image with the specified rendering mode. By default, images have a rendering mode of UIImageRenderingModeAutomatic.
    - (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode NS_AVAILABLE_IOS(7_0);
    @property(nonatomic, readonly) UIImageRenderingMode renderingMode NS_AVAILABLE_IOS(7_0);
    

    它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值:

    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 // 始终绘制图片原始状态,不使用TintColor
    UIImageRenderingModeAlwaysTemlate // 始终根据Tint Color 绘制图片,忽略图片的颜色信息
    renderingMode属性的默认值是UIImageRenderingModeAutomatic,即UIImage是否使用TintColor取决于它显示的位置

    什么情况下使用?
    某些时候,在为某些空间添加图片的时候,会不显示图片,只显示控件的tint color,故需要将其着色改为原始状态,才可以显示出来图片。

    UIImage *pic  = [UIImage imageNamed:@"qq.png"];
    pic = [pic imageWithRenderingMode:UIImageRenderingModealwaysOriginal];
    

    相关文章

      网友评论

          本文标题:10.UIImage之渲染模式(randeringMode)

          本文链接:https://www.haomeiwen.com/subject/cahtqxtx.html