我正在做一个绘画应用程序。在那,我画了一些图像。但我想添加撤消操作以删除以前绘制的项目。如何实现撤消操作?
答案 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)
答案 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];
...
我希望它可以帮到你。