如何擦除在图像上方的透明视图上绘制的UIBezierPath线?

时间:2011-11-02 12:00:04

标签: iphone uiview uibezierpath

我正在创建一个像白板应用程序的应用程序。我有一个动态图像。图像有多种颜色。我想在该图像上绘制与白板相同的线条,因此我在其上重叠了透明视图。现在,我正在使用选择好的颜色绘制线条。

现在的问题是,当我尝试在屏幕上触摸时擦除线条时,它应该显示像橡皮擦一样的效果。如果我有一些固定的颜色(如白色)背景然后擦除线我可以画一条背景颜色的线,但在这里我有透明的视图背景,所以我不能这样做。

我尝试使用绘制颜色的线具有alpha = 0但这并不反映任何内容,因为该线也是透明颜色。

我在我的draw rect方法中添加。

for (UIBezierPath *path in aryDrawPath) {       
    [[UIColor redColor] set];       
    [path stroke];
}

任何人都可以帮我解决这个问题。

非常感谢

2 个答案:

答案 0 :(得分:2)

如果背景中有图像,并且图像与白板绘图画布的大小和原点相同,则可以尝试使用背景图像作为颜色图案绘制“擦除”线:

[[UIColor colorWithPatternImage:backgroundImage] set];

backgroundImage是您在上面绘制的UIImage

这将使用下面的图像过度绘制您绘制的线条,因此它们将被删除。但是看起来有点笨拙?

答案 1 :(得分:1)

您可以使用混合模式。使用CGBlendMode..Clear Document