在iPhone中实现undo-redo的最佳实践

时间:2013-02-22 05:16:54

标签: iphone ios objective-c xcode undo-redo

我正在尝试使用Objective-C开发一个iPhone应用程序(演示项目),它可以为图像应用多种摄影效果。

应用程序启动并运行但我想在UI中实现“撤消”和“重做”功能。我已成功编写了一级撤销重做,即轻松向后或向前一步。但是当合并多个级别的撤消和重做动作时,这个概念变得复杂。当用户撤消一系列步骤然后分支到做其他事情时,它变得特别模糊。我试图保存的州越多,我就越迷惑。

我想知道是否有实施此类行动的标准最佳做法。我应该使用的任何架构或框架?这种普遍接受的程序是什么?任何简化这种方法的一般建议都将受到赞赏。

请帮忙。

1 个答案:

答案 0 :(得分:1)

这完全取决于您处理图像的方式。

如果您正在播放图像,可以使用NSUndoManager,您可以在其中跟踪图像处理。

否则,您可以跟踪对图像执行的操作数组,这不是首选。

但一切都取决于您的要求以及您处理图像的方式,

需要注意的重要事项是你在这类行动中的记忆。

如果您想在下次加载应用时重复使用您的操作,可以使用NSKeyArchiever。

相关问题