iOS/Swift:如何混合多个UIView
我正在尝试将图像与其他UIView(CollectionView、背景图像视图等)进行颜色减淡混合。在Android中,我可以将一些视图置于其他视图之上,然后在画布上绘制位图时应用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.
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”