如何将tintColor应用于UIImage?

我有一个UIImage是一个全黑的小符号。 UIImage被设置在一个自定义的UIButton子类中。 是否有可能将图像应用到它的tintColor ,所以而不是黑色图像改变颜色tintColor是什么?

我只是想避免创造新的资产。

 // here I want defaultImageName (that is black) to use the tintColor (that is white) [self setImage:[UIImage imageNamed:defaultImageName] forState:UIControlStateNormal]; 

如果你只是支持iOS 7,你可以使用tintColorUIImageRenderingModeAlwaysTemplate

本文涵盖了:

https://www.captechconsulting.com/blogs/ios-7-tutorial-series-tint-color-and-easy-app-theming

如果你需要支持早期的版本,你可能要考虑这个线程

如何在iPhone上以编程方式着色图像?

以下是我如何使用Swift在IOS 9中使用色彩和不透明度 –

 //apply a color to an image //ref - http://stackoverflow.com/questions/28427935/how-can-i-change-image-tintcolor //ref - https://www.captechconsulting.com/blogs/ios-7-tutorial-series-tint-color-and-easy-app-theming func getTintedImage() -> UIImageView { var image :UIImage var imageView :UIImageView image = UIImage(named: "someAsset")! let size : CGSize = image.size let frame : CGRect = CGRectMake((UIScreen.mainScreen().bounds.width-86)/2, 600, size.width, size.height) let redCover : UIView = UIView(frame: frame) redCover.backgroundColor = UIColor.redColor() redCover.layer.opacity = 0.75 imageView = UIImageView(); imageView.image = image.imageWithRenderingMode(UIImageRenderingMode.Automatic) imageView.addSubview(redCover) return imageView }