用CGContext绘图后擦除

时间:2011-05-09 15:31:42

标签: objective-c ios ipad drawing cgcontext

我正在尝试为iPad绘制一个简单的绘图应用程序,您可以在其上绘制图片,而我正在使用CGContext的东西来完成它,但我最初计划处理删除的方式是仅仅绘制一些东西白色......除了我刚才意识到当你画到另一个图像时它不起作用,因为当你“擦除”时你也会“擦除”背景图像。

有没有办法支持实际的删除?

谢谢!

3 个答案:

答案 0 :(得分:20)

我还需要删除功能。根据@ Jeremy的回答,这对我有用:

CGContextRef cgref = UIGraphicsGetCurrentContext();

if(erase == TRUE) // Erase to show background
{
    CGContextSetBlendMode(cgref, kCGBlendModeClear);
}
else // Draw with color
{
    CGContextSetBlendMode(cgref, kCGBlendModeNormal);
}

答案 1 :(得分:4)

在图像上方的图层中显示用户的绘图。然后擦除就像在绘图图层上绘制透明贴片一样简单,以便让它下面的图像像素显示出来。

答案 2 :(得分:0)

清除所有CGContextRef图纸:

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, self.bounds);
[self setNeedsDisplay];