UIViewのアニメーション


UIViewにアニメーションをつける場合複数方法があるようです。

アニメを作成

animateWithDurationを使います。
UIImageView * bImage = [[[UIImageView alloc] init] autorelease];
bImage.frame = CGRectOffset(CGRectMake(85, 253, 20, 20), 40, -40);
bImage.tag = 100;
bImage.image = [UIImage imageNamed:@"hoge.png"];
// アニメ開始
[self.view addSubview:bImage];
[UIView animateWithDuration:0.4 animations:^{
bImage.transform = CGAffineTransformMakeScale(1.5, 1.5);
bImage.alpha = 0.5;
}
completion:^(BOOL finished){
[bImage removeFromSuperview];
}];

bImageというUIImageViewをアニメーションさせます。すでに配置してある画像のうえにbImageのアニメーションを追加したのですが、CGRectOffsetを使って下の画像よりも少しずらしました。

肝心のアニメはanimateWithDurationの行からです。
hoge.pngを表示させ、0.4秒でtransformで拡大して、0.5にアルファをかけています。
煙の画像を使ったらすっと消える感じになるとおもいます。
completion:でアニメが終わった後の処理をかきます。
アニメした画像は必要ないのでremoveFromSuperviewで消しています。

上記の例だと動かしていますが。移動はしていませんね。
動かす場合はUIImageViewのcenterを指定して動かすみたいです。
UIImageView * aImage = (UIImageView *)[self.view viewWithTag:TAG_OFFSET];
aImage.center = CGPointMake(170, 0);
[UIView animateWithDuration:1.0 animations:^{
aImage.center = CGPointMake(400, 0);
aImage.alpha = 1.0;
}
completion:^(BOOL finished){
}];

これだと1秒でx座標を170から400まで移動するアニメを作ることができます。

アニメーションの違いは機会があれば。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です