我正在创建一个iOS应用程序,用户可以在其中为图像添加效果。应用该效果后,我有一个done
按钮,可以保存当前效果,并允许用户在已应用的效果上添加下一个效果,因此用户可以在其他效果上应用更多效果。如果用户不按Done
按钮,那么他在效果之间切换,但使用"完成"按钮,他可以在效果上应用效果(希望你明白!现在我有两个额外的按钮,名为Undo
和Redo
。当用户单击done
按钮时,我将所有应用的效果保存在array
中。
现在我想在单击按钮时撤消应用的效果undo
。反之亦然,单击按钮时redo
重做操作。
我知道为此目的我必须使用NSUndoManager
但我不知道我应该从哪里开始意味着我不知道如何将NSUndoManager
与包含图像的数组一起使用?
好吧,我用不同的方式做到了这一点!! 除了使用NSUndoManager
之外,我刚刚使用了 2Arrays
并用它们完成了代码。
- (IBAction)onUndoClicked:(id)sender {
if ([arrUndo lastObject] == nil) {
NSLog(@"EMPTY");
}
else
{
[arrRedo addObject:[arrUndo lastObject]];
NSLog(@"ArrAdd %@", [arrUndo description]);
[arrUndo removeLastObject];
for (UIImage *obj in arrUndo) {
if ([arrUndo lastObject] == obj) {
_imgClicked.image = obj;
}
}
}}
- (IBAction)onRedoClicked:(id)sender {
if ([arrRedo lastObject] == nil) {
NSLog(@"EMPTY");
}
else
{
[arrEffectImages addObject:[arrRedo lastObject]];
for (UIImage *obj in arrRedo) {
if ([arrRedo lastObject] == obj) {
_imgClicked.image = obj;
}
}
}}