画像やラベルに対してのRedo Undo機能を考えてみる2
用意したものでどうやって実現させるか
前回はアウトレットやボタンや宣言などで準備をしました。
ではこれから格納から戻る、進むまで考えてみます。
画像、ラベルなどを生成した時に格納
ではまず何をどう格納するのか。
NSMutableArrayの_containerStockにaddObjectとして_contentViewというUIViewの
subviews達を格納します。
の、前に初期化を・・・
ViewDidLoadにこれを書いて_containerStockと_redoundoIdexの初期化を。
下のやつはボタンを呼び出して初期はボタンイベントをNOにしたいます。
それではラベル、画像の生成時にsubviewsを格納するメソッドを作ります。
stackUndoというこのメソッド
サブビューを格納して、_redoundoIndexに現在のストック数を教えています。
このストック数でundoredoボタンを動かしていきます。
[self stackUndo]
このメソッドを生成時に呼び出す事により格納、管理をします。
生成時にこのメソッドの他に
self.undobtn.enabled = YES;
self.redobtn.enabled = NO;
この二つのボタンを呼び出します、生成は必ずundoをYES,redoをNOに。
生成した瞬間なので絶対に生成前に戻れますが、生成後の未来は格納していないので
問答無用でredo(進む)ボタンをNOにしてもいいでしょう。
まだまだ不十分ですが続きは次回で