我正在尝试使用Objective-C开发一个iPhone应用程序(演示项目),它可以为图像应用多种摄影效果。
应用程序启动并运行但我想在UI中实现“撤消”和“重做”功能。我已成功编写了一级撤销重做,即轻松向后或向前一步。但是当合并多个级别的撤消和重做动作时,这个概念变得复杂。当用户撤消一系列步骤然后分支到做其他事情时,它变得特别模糊。我试图保存的州越多,我就越迷惑。
我想知道是否有实施此类行动的标准最佳做法。我应该使用的任何架构或框架?这种普遍接受的程序是什么?任何简化这种方法的一般建议都将受到赞赏。
请帮忙。
答案 0 :(得分:1)
这完全取决于您处理图像的方式。
如果您正在播放图像,可以使用NSUndoManager,您可以在其中跟踪图像处理。
否则,您可以跟踪对图像执行的操作数组,这不是首选。
但一切都取决于您的要求以及您处理图像的方式,
需要注意的重要事项是你在这类行动中的记忆。
如果您想在下次加载应用时重复使用您的操作,可以使用NSKeyArchiever。