UIImage渲染模式
設(shè)置UIImage的渲染模式:UIImage.renderingMode
著色(Tint Color)是iOS7界面中的一個設(shè)置UIImage的渲染模式受裹,你可以設(shè)置一個UIImage在渲染時是否使用當(dāng)前視圖的Tint Color瞳浦。
UIImage新增了一個只讀屬性:renderingMode,對應(yīng)的還有一個新增方法:imageWithRenderingMode:遥巴,它使用UIImageRenderingMode枚舉值來設(shè)置圖片的renderingMode屬性铸本。該枚舉中包含下列值:
UIImageRenderingModeAutomatic // 根據(jù)圖片的使用環(huán)境和所處的繪圖上下文自動調(diào)整渲染模式枕赵。
UIImageRenderingModeAlwaysOriginal // 始終繪制圖片原始狀態(tài),不使用Tint Color晚伙。
UIImageRenderingModeAlwaysTemplate // 始終根據(jù)Tint Color繪制圖片吮龄,忽略圖片的顏色信息。
OC版本代碼
childVc.tabBarItem.selectedImage = [[UIImage imageNamed:selectImage] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
設(shè)置與不設(shè)置的效果圖:
設(shè)置時:
未設(shè)置時:
我們發(fā)現(xiàn)圖片的原始狀態(tài)是橙色咆疗,設(shè)置渲染時始終繪制圖片的原始狀態(tài)就是上面的效果了漓帚。而下面藍色的效果是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設(shè)置不同的樣式的效果圖