我向视图添加了各种UIControl。我希望像使用Photoshop中的混合模式一样,通过它显示渐变图像。
在这里,我使用了亮度混合模式。我希望可以在Swift的图层上访问类似的内容。
最佳答案
我想出了如何使用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”并以小写字母开头。这是一个容易选择的列表:
加法合成
colorBlendMode
colorBurnBlendMode
colorDodgeBlendMode
darkenBlendMode
差异混合模式
divideBlendMode
exclusionBlendMode
hardLightBlendMode
hueBlendMode
lightenBlendMode
linearBurnBlendMode
linearDodgeBlendMode
luminosityBlendMode
最大合成
minimumCompositing
multipleBlendMode
乘法合成
overlayBlendMode