如何添加一个覆盖图层到UIImageView,但不是在图像的透明部分?

问题描述:

我有这个UIImageView如何添加一个覆盖图层到UIImageView,但不是在图像的透明部分?

self.princessImageView.image = UIImage(named: "princess")! 

enter image description here

现在我想用这0.3图像上的字母添加的着色层。我试过这个:

let overlayView: UIView = UIView(frame: CGRect(x: 0, 
               y: 0, 
               width: self.princessImageView.frame.size.width, 
               height: self.princessImageView.frame.size.height)) 
overlayView.backgroundColor = UIColor.blue.withAlphaComponent(0.3) 
self.princessImageView.addSubview(overlayView) 

但是我得到了这个结果。

enter image description here

我当然明白那是因为我设置的全视图叠加。有什么办法可以只在图像的非透明部分设置叠加层?

感谢您的帮助。

你需要玩混合模式。

苹果文档:link

相关的一些东西,这可能有助于:link1 link2

+0

谢谢您的回复!得到它与这个解决方案一起工作:https://*.com/a/42353385/2885727 – Someday