gpt4 book ai didi

ios - 如何在普通 UIView(不是 UIImage)上获得多重混合模式

转载 作者:IT王子 更新时间:2023-10-29 08:20:39 26 4
gpt4 key购买 nike

我的 iPad 应用程序中有一张图片,基本上我想在上面放一个滤色器。为此,我有一个彩色的 UIView,它被遮盖成我放在图像上的特定形状。由于调整 alpha 没有给我想要的效果,所以我想改用混合模式。

据我所知,您只能在图像上使用混合模式,而不能在普通 View 上使用。 View 的颜色是动态的,所以我不能只使用图片。

我也尝试过将 View 光栅化为图像,但那全都是像素和奇怪之类的东西,但也许我做错了什么。

因此,基本问题是:是否可以将混合模式应用于 View ?还是我应该采取完全不同的方法来达到相同的目标?

最佳答案

查看 CALayer 的合成过滤器的文档:https://developer.apple.com/documentation/quartzcore/calayer/1410748-compositingfilter

在您的颜色叠加 View 上,您​​可以将 view.layer.compositingFilter 设置为 CICategoryCompositeOperation实现与其背后内容的融合。这是一些示例 Playground 代码,应用了乘法混合模式来测试它(将 UIImage(named: "") 替换为您自己的图像以进行测试)

import UIKit
import PlaygroundSupport

class MyViewController : UIViewController {
override func loadView() {

let mainView = UIView()
self.view = mainView

let image = UIImageView()
image.translatesAutoresizingMaskIntoConstraints = false;
image.image = UIImage(named: "maxresdefault.jpg")
mainView.addSubview(image)

let overlay = UIView()
overlay.translatesAutoresizingMaskIntoConstraints = false;
overlay.backgroundColor = .red
overlay.layer.compositingFilter = "multiplyBlendMode"
mainView.addSubview(overlay)

mainView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[subview]-0-|", options: .directionLeadingToTrailing, metrics: nil, views: ["subview": view]))
mainView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-0-[subview]-0-|", options: .directionLeadingToTrailing, metrics: nil, views: ["subview": view]))

mainView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[subview]-0-|", options: .directionLeadingToTrailing, metrics: nil, views: ["subview": overlay]))
mainView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-0-[subview]-0-|", options: .directionLeadingToTrailing, metrics: nil, views: ["subview": overlay]))
}
}

PlaygroundPage.current.liveView = MyViewController()

关于ios - 如何在普通 UIView(不是 UIImage)上获得多重混合模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16407396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com