お絵描き系のアプリの開発を行うと、必ず欲しくなる機能の一つとしてUNDO機能がある。
これが、なかなか難しい。
検索してもこれといった方法が紹介されていることがほとんどない。
個人で開発している人はみんな苦労しているのかと思われる。
と、言うことで、自力でなんとか対応を考えるしかない。
まず、考えたのが「NSUndoManager」を使って対応する方法。
この「NSUndoManager」は、なかなか高機能で、手軽で便利にUNDO機能を実装できるようだ。
紹介しているところを参考に実装し、動作を確認してみたが、どうも、思い通りの動きが出来るとは思えない。
日本語サイトではあるが、これを使っている人は、xcodeの中でもmac向けのアプリで、iOS(iPhone/iPad)向けではないものがほとんど。
なぜか、iOSアプリで使用している人がほとんどいない。
ざっと資料を読んでも、よくわからないところが多く、詳細までしっかり調べようと思うと、英語がでてくる。
英語そのものが苦手なので、技術的な話の前に理解できない・・・
他の方法を考えてみた。
いろいろ考えてみたのだが、やはり、これといった方法が思いつかない。
結果的に、編集前の画像を「UIImageView」に保存することにした。
メモリの使用量と、使い勝手の両立を考えて回数に制限を設ける。
・編集前のイメージを「UIImageView」に保存
・「NSMutableArray」に、「UIImageView」を設定
・REDOの為に、編集後のがそうも同様に保存
UNDO実行時は、「NSMutableArray」から古いイメージを取り出して入れ替える。
以上でUNDO機能を実装することが出来たが、あまり理想的とは思えない。
時間のある時に、もっと良い方法がないか探してみた方が良さそうだ。
ネットでは見つけきれなかったので、今度、本屋でよい方法がないか探してみることにする。
[0回]
PR