我使用两个CGlayers用于绘图,层1和层2,我抽入层1和上的触摸结束,我传送数据到第2层,只是明确层1,而在我的drawRect,方法,我两个层绘制到上下文。< / p>
点击了擦除按钮,我将绘图从Layer2转移到Layer1然后我擦除了layer1,但是在触摸结束时,我不将它转移到Layer2,因为我只擦除了Layer1
单击笔上如果发生擦除,我将绘图从Layer1转移到Layer2,否则之前的绘图可能会消失。
在代码中,它就像
- (void)eraserButtonClicked
{
CGContextRef layerContext1 = CGLayerGetContext( self.layer1);
CGContextClearRect(layerContext1, self.bounds);
CGContextDrawLayerInRect(layerContext1, self.bounds, self.layer2);
CGContextRef layerContext = CGLayerGetContext(self.layer2 );
CGContextClearRect(layerContext, self.bounds);
}
- (void)pen1ButtonClicked
{
CGContextRef layerContext = CGLayerGetContext(self.layer2 );
CGContextClearRect(layerContext, self.bounds);
CGContextDrawLayerInRect(layerContext, self.bounds, self.layer1);
CGContextRef layerContext1 = CGLayerGetContext( self.layer1);
CGContextClearRect(layerContext1, self.bounds);
}
所以我用这种方式将绘图从一个图层转移到另一个图层,但是会发生什么
1)如果我画一条线,然后我点击擦除按钮,然后不擦除,如果我再次点击笔按钮而不画任何东西,如果我再次点击擦除按钮,现在当我试图擦除整个图画时消失
2)但是如果我画线,然后点击“擦除”按钮并删除一条线,然后再次切换到笔按钮并绘制一条线并再次切换到“擦除”按钮并尝试擦除,它的效果非常好。