31歳から始める初心者のアプリ制作勉強ブログ

アプリ制作の勉強の経過や雑記などを書いていきます

画像やラベルに対してのRedo Undo機能を考えてみる2

用意したものでどうやって実現させるか

 

前回はアウトレットやボタンや宣言などで準備をしました。

ではこれから格納から戻る、進むまで考えてみます。

 画像、ラベルなどを生成した時に格納

ではまず何をどう格納するのか。

NSMutableArrayの_containerStockにaddObjectとして_contentViewというUIViewの

subviews達を格納します。

の、前に初期化を・・・

f:id:inou-social:20140127174636p:plain

 

 ViewDidLoadにこれを書いて_containerStockと_redoundoIdexの初期化を。

下のやつはボタンを呼び出して初期はボタンイベントをNOにしたいます。

 

それではラベル、画像の生成時にsubviewsを格納するメソッドを作ります。

f:id:inou-social:20140127175040p:plain

stackUndoというこのメソッド

サブビューを格納して、_redoundoIndexに現在のストック数を教えています。

このストック数でundoredoボタンを動かしていきます。

 

[self stackUndo]

このメソッドを生成時に呼び出す事により格納、管理をします。

生成時にこのメソッドの他に

self.undobtn.enabled = YES;

self.redobtn.enabled = NO;

この二つのボタンを呼び出します、生成は必ずundoをYES,redoをNOに。

生成した瞬間なので絶対に生成前に戻れますが、生成後の未来は格納していないので

問答無用でredo(進む)ボタンをNOにしてもいいでしょう。

 

まだまだ不十分ですが続きは次回で