Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS/Swift:如何混合多个UIView_Ios_Swift - Fatal编程技术网

iOS/Swift:如何混合多个UIView

iOS/Swift:如何混合多个UIView,ios,swift,Ios,Swift,我正在尝试将图像与其他UIView(CollectionView、背景图像视图等)进行颜色减淡混合。在Android中,我可以将一些视图置于其他视图之上,然后在画布上绘制位图时应用BlendMode.COLOR\u DODGE或PorterDuffXfermode(PorterDuff.Mode.ADD) 我尝试使用相同的类比来完成这项工作:将UIView置于其他视图之上,并应用颜色减淡。我已经试过了: override func draw(_ rect: CGRect) { self.

我正在尝试将图像与其他UIView(CollectionView、背景图像视图等)进行颜色减淡混合。在Android中,我可以将一些视图置于其他视图之上,然后在画布上绘制位图时应用
BlendMode.COLOR\u DODGE
PorterDuffXfermode(PorterDuff.Mode.ADD)

我尝试使用相同的类比来完成这项工作:将UIView置于其他视图之上,并应用颜色减淡。我已经试过了:

override func draw(_ rect: CGRect) {
    self.image?.draw(in: rect, blendMode: .colorDodge, alpha: 1.0)
}
但我注意到blendMode只有在它的draw方法中绘制视图的所有内容时才起作用,而这种行为对我不起作用


有一种方法可以在iOS中实现多个视图的混合?

您可以使用
合成过滤器

view.layer.compositingFilter = "colorDodgeBlendMode"
其他一些有效值:

“normalBlendMode”“darkenBlendMode”“multiplyBlendMode” “colorBurnBlendMode”“lightenBlendMode”“screenBlendMode” “colorDodgeBlendMode”“OverlyBlendMode”“softLightBlendMode” “hardLightBlendMode”“差异BlendMode”“排除BlendMode”