今日は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 件のコメント:
コメントを投稿