我想出了如何使用compositingFilter属性执行此操作。我尝试了这个,但是倒退了。它必须用在图像上,该图像应该是UIControls之上的一层:
let image: UIImage = UIImage(named: "testBGGradient.png")!
let bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x:0, y:topBarYPos + topBarHeight + topMargin, width:UIScreen.main.bounds.width, height:UIScreen.main.bounds.height)
guard let str = dbBlendStr else { return }
bgImage.layer.compositingFilter = "darkenBlendMode"
self.view.addSubview(bgImage)
有很多compositingFilters。使用适合你的那些:https://developer.apple.com/library/archive/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html#//apple_ref/doc/uid/TP30000136-SW71
您可以使用过滤器名称删除“CI”并从小写字母开始。这里有一个简单的列表可供选择:
additionCompositing
colorBlendMode
colorBurnBlendMode
颜色减淡混合模式
darkenBlendMode
differenceBlendMode
divideBlendMode
排除混合模式
hardLightBlendMode
hueBlendMode
lightenBlendMode
linearBurnBlendMode
线性道奇混合模式
光度混合模式
maximumCompositing
minimumCompositing
乘以混合模式
multiplyCompositing
叠加混合模式