animateWithDuration:delay:options:animations:completion で、completion の重要性

UIImageView をアニメーションさせる方法がわからなくて、さて、どうしたものか。色々調べたところ、アニメーションは UIView に対して指示するものであり、UIImageView に対して指示するものではないことが判明。しょうがないので、まずはUIView を定義して、その中に UIImageView を配置するように書き換え。管理したい UIImageView が 2 つあったので、実はこの方が都合がよかった。はじめから気づけと・・・

慎重に refactoring し、次に、UIView を拡大 → 元の大きさ → また拡大・・・と繰り返すにはどうするのか。アニメーションの合成をしないとダメなのか? animation の中に animation を書いて、うわっっ、読みにくいソースと思ったら、便利なもので、options で繰り返し、巻き戻しというのが指定できた。

次に、画面遷移して元の画面に戻って来たらまたアニメーションして欲しかったんだけど、アニメーションしないわ、画像が拡大表示されたままだわで、大変なことに・・・画像の拡大現象はもう救いようがなくて、画面遷移して戻ってくる度拡大され続ける感じ。これ、マジ困った。

便利なものでこれもちゃんと仕組みが用意されていて、completion で元の大きさになるように指示を出したら解消した。これ、検索しても事象として出てこないし、自分の遭遇する問題ズバリに答える回答ってなかなか無いのね。ほんと調べるの苦労した。やっぱ実際にやってみるのって重要だね。知識だけ持っててもダメで、試してみないと身につかないことってあるよね。

っって、わかってしまえば簡単なんだけど、わかるまでが大変なんです。