我正在做一個繪畫應用。在那裏,我畫了一些圖像。但我想添加撤消操作來刪除以前繪製的項目。我怎樣才能實現撤銷操作?如何在繪畫應用中實現撤消操作
3
A
回答
3
有一個名爲TouchPainter的應用程序,它的源代碼可用。它包含圖形,顏色混合,撤消/重做(Amazing .. !!),保存/打開圖形。
注意:它可能需要非常深入的目標C知識。整個應用程序的源代碼在此解釋書「Apress.Pro.Objective-C.Design.Patterns.for.iOS.Mar.2010」可用,源代碼也可以在這裏找到:
http://www.apress.com/apple-mac/objective-c/9781430233305
我希望這將有助於你.. :)祝你好運..
0
這裏是Memento pattern。
0
參考此鏈接: Design Pattern for Undo Engine
一般來說,你需要執行一個命令模式(或類似的一個)。 如果可以顛倒一個操作(例如,在圖形程序中,您可以放大一個圓),則可以將修改存儲在命令中。否則,您可能不得不保存以前狀態的深層克隆。
0
我會創建一個NSMutableArray添加每個操作。
NSMutableArray *ObjectList = [[NSMutableArray alloc] init];
[ObjectList addObject: TheSKSprite1];
[ObjectList addObject: TheSKSprite2];
[ObjectList addObject: TheSKSprite3];
...
然後檢索添加的最後一個圖形,將其從視圖和數組中刪除。
SKSpriteNode *OneDrawing = [ObjectList objectAtIndex:(int)[ObjectList count]-1];
[OneDrawing removeFromParent];
[ObjectList removeObjectAtIndex:(int)[ObjectList count]-1];
我希望它能幫助你。
相關問題
- 1. 如何在Android的繪畫應用中實現撤消功能?
- 2. 撤消在繪畫應用程序中的操作
- 3. 撤消實現 - DOM操作
- 4. 如何在繪圖應用中實現撤消
- 5. 如何在我的iOS繪畫應用程序中實現撤消功能?
- 6. CGContextRef撤消繪畫?
- 7. 如何在Photoshop等專業繪圖應用中存儲撤消重做操作?
- 8. 如何在繪圖應用程序中撤消和重做操作
- 9. Google如何在Gmail中實現「撤消」?
- 10. 在CoreData中撤消操作
- 11. 如何在Android畫布中實現撤消,重做和擦除
- 12. 如何撤消使用c的繪製操作#
- 13. 如何在Android的繪圖線上執行撤消操作?
- 14. 如何在繪圖畫布上實現形狀操作?
- 15. 撤消在繪畫應用程序,如倒數第二和iDraft
- 16. 在繪圖應用程序中撤消
- 17. 石英核心:撤消在iOS中的繪畫應用程序
- 18. OpenGL ES:在像素繪畫應用程序中撤消
- 19. 如何撤消webapp中的操作?
- 20. 如何使用NSTextview實現撤消
- 21. 如何使用NSUndoManager實現撤消?
- 22. 如何在.net窗口應用程序中實現'撤銷'操作?
- 23. 撤消Pdfnup操作
- 24. 如何在datagridview中實現撤銷操作
- 25. 使用ArrayList撤消操作
- 26. 如何實現HTML5 Canvas繪畫應用程序的拖放操作?
- 27. 如何爲樹視圖實現撤消
- 28. 我試圖在畫布中實現撤消選項
- 29. 在JavaScript中實現撤消功能
- 30. 如何撤消java中的初始屏幕繪畫
如何存儲已繪製的對象?答案很大程度上取決於你的代碼。核心數據有一個很好的撤銷/重做機制。 – dasdom
我添加了一個按鈕來保存繪製的圖像。所以,當我點擊保存按鈕,然後將其存儲到核心數據。 – Nari