座標を移動させる場合はコードの中で終点の座標を指定してやるだけで、現在位置から終点までの移動をアニメーションしてくれる。
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 件のコメント:
コメントを投稿