从 iOS7 开始,UIImage 有了一个方法:-imageWithRenderingMode:
,参数是枚举类型UIImageRenderingMode,它有3个值:
- UIImageRenderingModeAlwaysOriginal,这个模式要求系统按照图片文件原来的样子渲染图片。
- UIImageRenderingModeAlwaysTemplate,这个模式会首先扫描图片,然后从图片中所有不透明的像素创建一个模板,这同时也会忽略图片的所有颜色信息。最后会使用 UIView 子类的 tintColor 属性来给图片填充颜色。
- UIImageRenderingModeAutomatic,这是 UIImaga 实例的默认模式,由系统根据图片的使用环境来决定如何渲染图片。如果图片是用在如UITabBar,UINavigationBar,UIToolbar 和 UISegmentedControl 等,图片就使用 AlwaysTemplate 渲染模式,如果图片用在其他的地方则会使用 AlwaysOriginal 渲染模式。