如何在绘画应用程序中实现撤消操作

时间:2011-12-10 09:47:09

标签: iphone

我正在做一个绘画应用程序。在那,我画了一些图像。但我想添加撤消操作以删除以前绘制的项目。如何实现撤消操作?

4 个答案:

答案 0 :(得分:3)

有一个名为TouchPainter的应用程序,其源代码可用。它包含绘图,颜色混合,撤消/重做(惊人...... !!),保存/打开图纸..

注意:可能需要对Objective C有非常深入的了解。整个应用程序的源代码在本书“Apress.Pro.Objective-C.Design.Patterns.for.iOS.Mar.2010”中有解释。代码也可以在这里找到:

http://www.apress.com/apple-mac/objective-c/9781430233305

我希望它对你有帮助.. :)祝你好运..

答案 1 :(得分:0)

这是Memento pattern

答案 2 :(得分:0)

参考此链接: Design Pattern for Undo Engine

一般来说,您需要实现一个命令模式(或类似命令模式)。 如果可以反转一个操作(例如,在图形程序中,您可以放大一个圆),则可以将修改存储在命令中。 否则,您可能需要保存以前状态的深层克隆。

答案 3 :(得分:0)

我会创建一个NSMutableArray,在其上添加每个操作。

ffmpeg -f mp4 -i outfile.mp4 -f srt -i VTS_07_0.EnglishV2.srt -c:v copy -c:a copy -metadata:s:a:0 language=Japanese -c:s mov_text -metadata:s:s:0 language=English -disposition:s:s:0 forced mix.mp4

然后检索最后添加的Drawing,将其从View和Array中删除。

NSMutableArray *ObjectList = [[NSMutableArray alloc] init];
[ObjectList addObject: TheSKSprite1];
[ObjectList addObject: TheSKSprite2];
[ObjectList addObject: TheSKSprite3];
...

我希望它可以帮到你。