UIImage渲染模式
设置UIImage的渲染模式:UIImage.renderingMode
着色(Tint Color)是iOS7界面中的一个设置UIImage的渲染模式,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。
UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithRenderingMode:,它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值:
UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。
UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。
UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。
OC版本代码
childVc.tabBarItem.selectedImage = [[UIImage imageNamed:selectImage] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
设置与不设置的效果图:
设置时:
未设置时:
我们发现图片的原始状态是橙色,设置渲染时始终绘制图片的原始状态就是上面的效果了。而下面蓝色的效果是apple原来就有的。
Swift版本代码
var homeImageView: UIImageView!
var homeSwitchImageView: UIImageView!
self.homeImageView.image = UIImage(named: "home")!.imageWithRenderingMode(.AlwaysTemplate)
self.homeImageView.tintColor = UIColor.whiteColor()
self.homeSwitchImageView.image = UIImage(named: "switch")!.imageWithRenderingMode(.AlwaysOriginal)
self.homeSwitchImageView.tintColor = UIColor.whiteColor()
imageWithRenderingMode设置不同的样式的效果图
Paste_Image.png
网友评论