iOS 7/8 Objective C - 将blendmode应用于视图

时间:2014-11-14 15:29:28

标签: ios objective-c blending

我想在其他视图上使用UIView应用饱和blendMode,如下所示:

Example BlendMode :示例

我的ViewController视图中有一个UILabel和UIImageView,还有一个覆盖drawRect方法的BlendView。

- (void) drawRect:(CGRect)area
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSaveGState(context);

    [[UIColor whiteColor] setFill];
    CGContextSetBlendMode(context, kCGBlendModeSaturation);
    CGContextFillRect(context, self.bounds);
    CGContextRestoreGState(context);
}

但是,如果给出kCGBlendModeSaturation,我只有一个黑色方块,如果kCGBlendModeMultiply给出,我只有一个白色方块 - 未应用blendmode。 我已将BlendView设置为不透明并使用不同的alpha值进行测试,无需更改。

P.S。:我希望将blendmode应用于任何视图,而不仅仅是图像。

1 个答案:

答案 0 :(得分:1)

您无法将混合模式应用于单个视图,并希望它对下面的视图产生任何影响,就像使用Photoshop中的图层一样(您可以在两个单独的视图之间进行合成)改变他们的不透明度)。

您唯一能做的就是,在单个视图的drawRect上,使用特定的填充模式绘制上一个绘图说明。