我向视图添加了各种UIControl。我希望像使用Photoshop中的混合模式一样,通过它显示渐变图像。

ios - 是否可以为UIControls设置混合模式或其他设置,以便可以看到其下面的图层?-LMLPHP

ios - 是否可以为UIControls设置混合模式或其他设置,以便可以看到其下面的图层?-LMLPHP

在这里,我使用了亮度混合模式。我希望可以在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

10-08 05:44