2015年3月12日木曜日

UIViewのAnimationについて

UIViewは簡単にアニメーションの設定ができる

座標を移動させる場合はコードの中で終点の座標を指定してやるだけで、現在位置から終点までの移動をアニメーションしてくれる。

UIViewAnimationOptions options = UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseOut;
        [UIView animateWithDuration:2.0 //アニメーション時間
                              delay:0.0 //アニメーション開始までの待ち時間
                            options:options //オプション
                         animations:^{ //この中でアニメーションの内容を設定する
                             CGPoint terminatePoint = CGPointMake(dust.dustTerminateX, CGRectGetMaxY(_houseImageView.frame));
                             human.center = terminatePoint; //終点座標指定
                             dust.center = terminatePoint; //終点座標指定
                         } completion:^(BOOL finished) { //アニメーション終了後の処理
                             isDustMoving = NO;
                         }];

指定できるoptionsの一部。
単独のbitになっているものがあるので、OR(|)を使って複数指定することができる。
他にもいろいろある。
  • UIViewAnimationOptionCurveLinear
    • 同じ速度でアニメーションする
  • UIViewAnimationOptionCurveEaseIn
    • 移動がゆっくり始まる
  • UIViewAnimationOptionCurveEaseOut
    • 移動がゆっくり終わる
  • UIViewAnimationOptionCurveEaseInOut
    • 移動がゆっくり始まり、ゆっくり終わる
  • UIViewAnimationOptionAutoreverse
    • 終点まで行ったら始点まで戻る
  • UIViewAnimationOptionRepeat 
    • 同じアニメーションを繰り返す
  • UIViewAnimationOptionBeginFromCurrentState
    • すでに動いているアニメーションに現在の設定をつなげてアニメーションを開始。よくわかんないけど、単独のアニメなら無視される。

0 件のコメント:

コメントを投稿