我已将各种 UIControl 添加到我的 View 中。我希望通过它显示渐变图像,就像在 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)
有很多合成过滤器。使用在这里找到的适合您的:https://developer.apple.com/library/archive/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html#//apple_ref/doc/uid/TP30000136-SW71
您可以使用过滤器名称,删除“CI”并以小写字母开头。这是一个可供选择的简单列表:
添加合成
颜色混合模式
颜色燃烧混合模式
颜色道奇混合模式
变暗混合模式
差异混合模式
划分混合模式
排除混合模式
硬光混合模式
色调混合模式
光照混合模式
线性燃烧混合模式
线性道奇混合模式
亮度混合模式
最大合成
最小合成
多重混合模式
多重合成
叠加混合模式
关于ios - 是否有混合模式或其他我可以为 UIControls 设置的内容,以便我可以看到其下面的图层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54717378/