画像やラベルに対してのRedo Undo機能を考えてみる1
Undo Redo
cocoaでなく、Redo Undoをどうやるのか参考になるサイトが少ない上に
あってもお絵描きで描画をどう取って消すかというものばかり。
なので自分でも色々考えながら作る事にしてみた。
まず保存する配列を作る
どういう動作でRedo Undoを実現するかまず考える時に、まず考えるのが
進むにも戻るにも格納する場所が必要。
なのでNSMutableArrayで格納場所を作ります。
この_containerStockの中に必要な物を格納していきます。
何を格納するか?
今回は画像とラベルをUndoRedoさせようと思っているので
_contentViewというUIViewにのっけるsubviewsを保管。
格納した数をカウントしてそれに合わせて進んだり戻したりを再現してみます。
その為に_containerStockの中身を管理する変数を用意
管理する為の変数をNSIntegerで用意、名前は_redoundoIndexと
用意するもの
Main.storyboardの方にundo redoのアウトレットをまず作成。
適当にundobtn redobtnとしてアウトレット接続しておく。
ちゃんとアウトレット接続の方も
ボタンをアウトレット接続する訳
undo redo機能はストック上限まで行ったら押せないようにしたい、
なのでボタンのON.OFFを呼び出して設定する為のアウトレット接続
self.redobtn.enabled = YES;
これはボタンを有効にするか?という事でYESを返していますが
させたくない時は YESをNOに変えるだけ。
続きは次回で