iphone - 在 iPhone 中实现撤消重做的最佳实践

标签 iphone ios objective-c xcode undo-redo

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

应用程序已启动并正在运行,但我想在 UI 中实现“撤消”和“重做”功能。我已经成功地编码了一级撤消重做,即轻松后退或前进一步。但当合并多个级别的撤消和重做操作时,这个概念就会变得复杂。当用户撤消一系列步骤然后分支去做其他事情时,它会变得特别模糊。我试图拯救的州越多,我就越受欺骗。

我想知道是否有实现此类操作的标准最佳实践。我应该使用什么架构或框架?这样做的普遍接受的程序是什么?任何有关简化此方法的一般建议将不胜感激。

请帮忙。

最佳答案

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

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

否则您可以跟踪对图像执行的一系列操作,但这是不太优选的。

但这一切都取决于您的要求以及您如何处理图像,

需要注意的重要事情是您对此类行为的内存。

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

关于iphone - 在 iPhone 中实现撤消重做的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15017353/

相关文章:

iphone - 调用委托(delegate)的委托(delegate)

ios - 未调用 alertViewShouldEnableFirstOtherButton

objective-c - 核心数据一对多关系 : fetching specific related entities

objective-c - 从 Cocoa 中的文件中只读取 "N"字节

ios - 在 Bitbucket 存储库上推送具有多个项目的工作区

ios - 慢动作播放 MPMoviePlayerController

iphone - 调用 SQLite 数据库更新 UITableView

iphone - 如何在终止应用程序之前保留 iPhone 应用程序状态?

iphone - 具有多个 UIViewController 的 ScrollView

iphone - 如何仅从右向左扩展 UIButton 宽度