2017-07-04 53 views
0

我正在創建一個iOS應用程序,用戶可以在其中爲圖像添加效果。應用該效果後,我有一個done按鈕,它可以保存當前效果並允許用戶在已應用效果上添加下一個效果,因此用戶可以對其他效果應用更多效果。如果用戶不按Done按鈕,然後他在效果之間切換,但用「完成」按鈕,他可以對效果施加效果(希望你明白!)。現在我有兩個額外的按鈕名爲Undo & Redo。當用戶點擊done按鈕時,我將所有應用效果保存在array中。如何在包含圖像的NSMutableArray上執行NSUndoManager?(Objective-C)

現在我想撤消應用效果,當點擊undo按鈕。當點擊redo按鈕時,反之亦然重做操作。我不知道如何使用NSUndoManager與包含圖像的數組?

+0

請通過鏈接:http://szulctomasz.com/2015/09/13/ios-undo-and-redo-with-nsundomanager.html –

+0

@AshokLondhe我已經提到這一個,但其在迅速,我不太熟悉迅速,所以沒有從這個想法。 thanx尋求幫助。 –

回答

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; 
      } 
     } 
    }} 
相關問題