我正在创建一个iOS应用程序,用户可以在其中为图像添加效果。应用该效果后,我有一个done
按钮可以保存当前效果并允许用户在已经应用的效果上添加下一个效果,因此用户可以对其他效果应用更多效果。如果用户不按Done
按钮,则他会在效果之间切换,但使用"完成"按钮他可以对效果产生效果(希望你明白!)。现在,我有两个名为Undo
&的额外按钮。 Redo
。当用户点击array
按钮时,我会在done
中保存所有应用的效果。
现在我想在单击undo
按钮时撤消应用的效果。单击redo
按钮时反之亦然。
我知道为了这个目的我使用NSUndoManager
但我不知道从哪里开始意味着我不知道如何使用NSUndoManager
包含图像的数组?
答案 0 :(得分:0)
嗯,我以不同的方式做到了这一点!!除了使用NSUndoManager
我还使用了2 Arrays
并使用它们完成了代码。
- (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;
}
}
}}