Ios 如何在包含图像的NSMUTABLEARRY上执行NSNDOManager?(目标-C)
我正在创建一个iOS应用程序,用户可以在其中向图像添加效果。应用该效果后,我有一个Ios 如何在包含图像的NSMUTABLEARRY上执行NSNDOManager?(目标-C),ios,objective-c,uiimage,nsmutablearray,nsundomanager,Ios,Objective C,Uiimage,Nsmutablearray,Nsundomanager,我正在创建一个iOS应用程序,用户可以在其中向图像添加效果。应用该效果后,我有一个done按钮,该按钮保存当前效果并允许用户在已经应用的效果上添加下一个效果,以便用户可以在其他效果上应用更多效果。若用户不按Done按钮,那个么他会在效果之间切换,但通过“Done”按钮,他可以对效果应用效果(希望你们能得到它!)。现在我有两个额外的按钮,名为Undo&Redo。当用户单击done按钮时,我将所有应用的效果保存在数组中 现在我想在单击undo按钮时撤消应用的效果。单击redo按钮时,执行visa v
done
按钮,该按钮保存当前效果并允许用户在已经应用的效果上添加下一个效果,以便用户可以在其他效果上应用更多效果。若用户不按Done
按钮,那个么他会在效果之间切换,但通过“Done”按钮,他可以对效果应用效果(希望你们能得到它!)。现在我有两个额外的按钮,名为Undo
&Redo
。当用户单击done
按钮时,我将所有应用的效果保存在数组中
现在我想在单击undo
按钮时撤消应用的效果。单击redo
按钮时,执行visa versa重做操作
我知道为此我必须使用NSUndoManager
,但我不知道从何处开始意味着我不知道如何使用NSUndoManager
和包含图像的数组?好吧,我用不同的方式完成了!!除了使用NSUndoManager
之外,我刚刚使用了2个数组
并对它们进行了编码
- (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;
}
}
}}
请通过链接:@AshokLondhe我已经提到了这一个,但它是在斯威夫特,我不太熟悉斯威夫特,所以没有从中得到的想法。谢谢你的帮助。