block構文でアニメーション

2011/06/25

iOS 4 から使えるようになったブロック構文。 先日の勉強会で初めて知りました。

アニメーションに関しては、ブロック構文で書くのが推奨されているようです。 とりあえず、ブロック構文の文法を把握してないのでサンプルを参考に書いてみた。

参考サイト

UIVIEWのアニメーション(IOS4以降)

サンプル

UIViewのインスタンス myView を alpha 0 → 1.0 で下から上に移動する。

        self.myView.alpha = 0.0f;
    [self.playControllerView setFrame:CGRectMake(0, 480, 320, 480)];
    [self.view addSubview:myView];

    [UIView animateWithDuration:0.5f
                          delay:0.0f
                        options:UIViewAnimationOptionAllowUserInteraction
                     animations:^{
                         [self.playControllerView setFrame:CGRectMake(0, 0, 320, 480)];
                         [self.playControllerView setAlpha:1.0f];
                     }
                     completion:^(BOOL finished){
                        //アニメーション終了後の処理
                     }];

「^」で書かれている部分が非同期で動いてくれるって事でよいのかな? animations にアニメーションの設定、competion にアニメーション終了後の処理を記述

今後iOS 5になったら動かない!なんて事も今後あるかも知れませんし、この記述を使うようにします。