我正在创建一个像白板应用程序的应用程序。我有一个动态图像。图像有多种颜色。我想在该图像上绘制与白板相同的线条,因此我在其上重叠了透明视图。现在,我正在使用选择好的颜色绘制线条。
现在的问题是,当我尝试在屏幕上触摸时擦除线条时,它应该显示像橡皮擦一样的效果。如果我有一些固定的颜色(如白色)背景然后擦除线我可以画一条背景颜色的线,但在这里我有透明的视图背景,所以我不能这样做。
我尝试使用绘制颜色的线具有alpha = 0但这并不反映任何内容,因为该线也是透明颜色。
我在我的draw rect方法中添加。
for (UIBezierPath *path in aryDrawPath) {
[[UIColor redColor] set];
[path stroke];
}
任何人都可以帮我解决这个问题。
非常感谢
答案 0 :(得分:2)
如果背景中有图像,并且图像与白板绘图画布的大小和原点相同,则可以尝试使用背景图像作为颜色图案绘制“擦除”线:
[[UIColor colorWithPatternImage:backgroundImage] set];
backgroundImage
是您在上面绘制的UIImage
。
这将使用下面的图像过度绘制您绘制的线条,因此它们将被删除。但是看起来有点笨拙?
答案 1 :(得分:1)
您可以使用混合模式。使用CGBlendMode..Clear Document