2012年1月31日火曜日

UIViewアニメーションで一時停止

どうも、俺@コーディング中です。
今日はObjective-Cでアプリ開発をしてて、UIViewのアニメーションを使うことはよくあるのですが、今日はそのアニメーションを一時停止させる方法をめもめもします。
// hogeLabelの座標は(0, 0)
hogeLabel.frame = CGRectMake(0, 0, 100, 100);

// アニメーション開始
[UIView beginAnimations:nil context:nil];

// アニメーション時間
[UIView setAnimationDuration:1.0f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];

// hogeLabelを(200, 200)の位置へ動かす
hogeLabel.frame = CGRectMake(200, 200, 100, 100);

[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(hogeLabelStopped:finished:context:)];
[UIView commitAnimations];
とりあえずこれでhogeLabelは座標(0, 0)から(200, 200)へ1秒かけて動くアニメーションができました。
このあとセレクターメソッド(hogeLabelStopped)内で、一旦停止させるには

- (void)hogeLabelStopped:(NSString *)animation finished:(BOOL)finished context:(void *)context
{
  // 一時停止(0.5秒)
  [NSThread sleepForTimeInterval:0.5];

  // その他の動作はこれ移行に記述
}
こんな感じです。[NSThread sleepForTimeInterval:(double) interval]はスレッドをsleepさせる静的なメソッドです。

以上どっぇぇぇぇぇえっぇぇす。

0 件のコメント: