我有一个名为theImageView的UIImageView, UIImage是单色的(透明背景),就像下面左边的黑色心形。我如何在iOS 7或更高的系统中,根据iOS 7+导航栏图标中使用的色调方法,以编程方式更改此图像的色调颜色?
这个方法也适用于WatchKit的Apple Watch应用程序吗?
我有一个名为theImageView的UIImageView, UIImage是单色的(透明背景),就像下面左边的黑色心形。我如何在iOS 7或更高的系统中,根据iOS 7+导航栏图标中使用的色调方法,以编程方式更改此图像的色调颜色?
这个方法也适用于WatchKit的Apple Watch应用程序吗?
当前回答
profileImageView。image = theImageView.image!.withRenderingMode(.alwaysTemplate) profileImageView。tintColor = uiccolor .green
OR
首先在图像资产中选择特定图像,然后选择红色作为模板而不是默认,然后写行。 profileImageView。tintColor = uiccolor .green
其他回答
用于着色UIButton的图像
let image1 = "ic_shopping_cart_empty"
btn_Basket.setImage(UIImage(named: image1)?.withRenderingMode(.alwaysTemplate), for: .normal)
btn_Basket.setImage(UIImage(named: image1)?.withRenderingMode(.alwaysTemplate), for: .selected)
btn_Basket.imageView?.tintColor = UIColor(UIColor.Red)
在故事板和图像资产中。你也可以改变这两个:
更新渲染模式为模板图像
更新视图中的色调颜色。
let navHeight = self.navigationController?.navigationBar.frame.height;
let menuBtn = UIButton(type: .custom)
menuBtn.frame = CGRect(x: 0, y: 0, width: 45, height: navHeight!)
menuBtn.setImage(UIImage(named:"image_name")!.withRenderingMode(.alwaysTemplate), for: .normal)
menuBtn.tintColor = .black
现在我使用基于Duncan Babbage response的方法:
+ (UIImageView *) tintImageView: (UIImageView *)imageView withColor: (UIColor*) color{
imageView.image = [imageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[imageView setTintColor:color];
return imageView;
}
profileImageView。image = theImageView.image!.withRenderingMode(.alwaysTemplate) profileImageView。tintColor = uiccolor .green
OR
首先在图像资产中选择特定图像,然后选择红色作为模板而不是默认,然后写行。 profileImageView。tintColor = uiccolor .green