如何撤消和重做手势处理

时间:2012-04-27 07:24:29

标签: nsmutablearray uigesturerecognizer nsundomanager

我写了一个没有核心数据的应用程序。现在我想要包含实现撤消和重做WITHOUT Core Data的方法。
不幸的是,我在网上找不到任何东西,书籍等。

我认为我有两个NSMutableArray应该有堆栈的功能。
所以我称之为undoStack和redoStack。如果我执行手势等操作,则应该在数组中执行此操作:

  

[undoStack addObject:gestureRecognizer];

如果单击撤消按钮,则应执行以下语句:

  

[undoStack removeObject:[undoStack lastObject]];      和

     

[redoStack addObject:[undoStack lastObject]];

最后我有一个保存按钮,可以自动清除堆栈

这一切都很好,但我怎样才能将所有动作保存在一个阵列中?
动作如:panGesture,pinchGesture和rotationGesture

提前谢谢

1 个答案:

答案 0 :(得分:1)

将所有操作添加到NSMutableArray(panGesture,pinchGesture,rotationGesture),然后将该数组添加到undoStack数组。和一个对象一样使用它。只有当你需要使用它时,你需要提取它。或者,例如,如果您有4 gestures,则将所有手势添加到undoStack,当您需要将其移至redoStack时,请取4个最后的对象并添加到redoStack }。