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まで移動するアニメを作ることができます。
アニメーションの違いは機会があれば。