美文网首页大前端开发Xcode&iOS重学
UIImage渲染模式 imageWithRenderingMo

UIImage渲染模式 imageWithRenderingMo

作者: 断点凌er_ZL | 来源:发表于2019-05-21 17:53 被阅读2次

        在项目中遇到过一个这样的小问题:UI给出了一个灰色箭头图标,但在有的界面上让显示的是白色箭头图标;最初第一反应是让UI再出一张白色箭头的图标,然而偶然机会发现了UIImage的渲染,巧妙的解决了这一问题,在此做一个随笔记录,仅供参考。

        Tint Color是iOS7界面中的一个,UIImage的API中有这样一个只读属性:renderingMode,对应的方法:imageWithRenderingMode:,而这个imageWithRenderingMode是专为UIImage的渲染模式而设计的。我们可通过设置一个UIImage的renderingMode来确定在渲染时是否使用当前视图的Tint Color,即主要是通过UIImageRenderingMode枚举值来设置图片的renderingMode属性。

    UIImageRenderingMode枚举值

    三种不同枚举值分别代表的含义如下:

    1.UIImageRenderingModeAutomatic  :根据图片的使用环境和所处的绘图上下文自动调整渲染模式

    2.UIImageRenderingModeAlwaysOriginal   :始终绘制图片原始状态,不使用Tint Color

    3.UIImageRenderingModeAlwaysTemplate   : 始终根据Tint Color绘制图片,忽略图片的颜色信息。 

        默认情况下renderingMode属性的默认值是UIImageRenderingModeAutomatic,即UIImage是否使用Tint Color取决于它显示的位置。下面我们分别对UIImageRenderingModeAlwaysOriginal、UIImageRenderingModeAlwaysTemplate做个举例说明:

    UIImageRenderingMode设置为UIImageRenderingModeAlwaysOriginal

    即在设置图片渲染时,绘制图片back的原始状态,在本例中既定的图片通过设置为UIImageRenderingModeAlwaysOriginal对应以下效果:

    back原始图片 UIImageRenderingMode设置为UIImageRenderingModeAlwaysTemplate

        即在设置图片渲染时,通过设置Tint Color绘制图片颜色,忽略图片的颜色信息,在本例中设置UIImageRenderingModeAlwaysTemplate对应以下效果:

    back的tintColor设置为白色的效果图

    相关文章

      网友评论

        本文标题:UIImage渲染模式 imageWithRenderingMo

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