Hatena::Groupiphone-dev

3ヶ月でiPhoneアプリを1本作る日記 RSSフィード

参考になった記事があれば☆をぽちっとしていただけると

2009-12-18

[][]アニメーションの処理方法は3種類ある 10:07 はてなブックマーク - アニメーションの処理方法は3種類ある - 3ヶ月でiPhoneアプリを1本作る日記

  1. UIViewで表示しているものを直接動かすもの
  2. Core Animationを使い「レイヤ」を処理するもの
  3. トランジション」を用いるもの

簡単さ手軽さの順で言えば、3>1>2かな。本格的にやるなら2。


アニメーションの処理については、オライリー本にはあまり書かれていなくて、「iPhone SDK プログラミング大全」の書籍にけっこう書かれていました。

[]UIView Animation 22:52 はてなブックマーク - UIView Animation - 3ヶ月でiPhoneアプリを1本作る日記

上で紹介した方法の1番目の方法。

UIView のアニメーション機能で簡単に使えます。

こんな感じです。

UIImageView* _imageView;

- (void)loadView {
	[super loadView];

	//イメージビュー生成
	_imageView=[[UIImageView alloc] init];
	UIImage* image=[UIImage imageNamed:@"image.jpg"];
	[_imageView setImage:image];
	[_imageView setFrame:CGRectMake(0,0,image.size.width,image.size.height)];
	[self.view addSubview:_imageView];
	[self testAnimetion];
}
- (void) testAnimetion {
	//アニメーションの開始
	[UIView beginAnimations:@"testAnimation" context:NULL];
	[UIView setAnimationDuration:0.1f];  // 時間
	[UIView setAnimationCurve:UIViewAnimationCurveLinear]; // 加速パターン
	[UIView setAnimationDelegate:self];    // デリゲート
	[UIView setAnimationRepeatAutoreverses:TRUE];	// リバース動作
	[UIView setAnimationRepeatCount:999];  // 繰り返し回数
	[UIView setAnimationDidStopSelector:@selector(animationDidStop:)];
	
	//イメージの移動
	CGRect frame=_imageView.frame;
	frame.origin.x=50;  // xが 0〜50 まで移動
	_imageView.frame=frame;
	_imageView.alpha=0; // 透明度を0に

	//アニメーションの終了
	[UIView commitAnimations];
}

//アニメーション完了イベント
- (void)animationDidStop:(NSString*)animationID finished:(BOOL)finished context:(void*)duration {
    NSLog(@"アニメーション完了");
}

beginAnimations から、commitAnimations までの間で、アニメーションの動作を記述します。

繰り返しの設定やリバース動作も設定できで、簡単ですね。


ここを参考にさせていただきました。

http://www.saturn.dti.ne.jp/~npaka/iphone/ViewAnimeEx/index.html

no title