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

标签 ios swift blending uicontrol

我已将各种 UIControl 添加到我的 View 中。我希望通过它显示渐变图像,就像在 Photoshop 中使用混合模式一样。

UIControls untouched

UIControls with gradient underneath it, showing through

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

相关文章:

iOS 如何获取 facebook 好友(既已登录应用程序又未登录应用程序)userIds?

ios - 无法以编程方式将 UIImageView 添加为 UIView 的 subview

python - 尝试将多行中的列值混合/合并到单行中

python - 获取图像模式 PIL Python

algorithm - 是否有一种颜色混合算法可以像混合真实颜色一样工作?

ios - instaFilter 处理器错误 - 预期返回的函数中缺少返回值

c# - 如何覆盖 Xamarin.IOS UIButton 的 LayoutSublayersOfLayer 行为?

swift - 秒表 - 停止和开始

ios - 跟踪用户喜欢的帖子 - flutter 和 firestore

ios - 无法关闭 Swift 中的导航 Controller