1

许多人建议我保存刚刚绘制的图像,并在当前图片中需要撤消时加载它。

但我认为这可能不是一个好方法:

  1. 保存并加载到磁盘会导致滞后。
  2. 撤消后无法擦除,因为您无法擦除图像(不填充背景颜色)。

因此,我正在寻找一种方法来恢复 CGLayer 或上下文的数据,当您需要撤消时,将当前数据覆盖为“绘制资源”。我已经使用 NSMutableData 来执行此操作,但它根本不起作用,因为只保存了指针。

而且我不明白如何使用CGContextSaveState,CGContextRestoreState。当你保存它时,你必须在 drawRect 完成之前恢复它,你不能保存它并在需要撤消时恢复它,因为当 drawRect 完成时上下文将被破坏或重置,以及我所做的一切试过了,没有任何反应。

有人可以在这里帮助我吗?谢谢!

4

0 回答 0