如何在Core-Graphics Framework中设计撤销功能?

时间:2012-06-05 13:08:35

标签: core-graphics restore cgcontext undo

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

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

  1. 保存并加载到磁盘将导致滞后。
  2. 撤消后无法删除,因为你无法删除图像(不能用backGroundColor填充)。
  3. 所以,当你需要撤消时,我正在寻找一种方法来恢复CGLayer或上下文的数据,以覆盖当前的数据作为“绘制资源”。我已经使用NSMutableData来执行此操作,但它根本不起作用,因为只保存了指针。

    我不明白如何使用CGContextSaveState,CGContextRestoreState。当你保存它时,你必须在drawRect完成之前恢复它,你不能保存它并在需要撤消时恢复,因为当drawRect完成时上下文将被销毁或重置,并且我已经完成了所有这些尝试过,没有任何反应。

    有人可以帮我吗? THX!

0 个答案:

没有答案