ビューが数秒間読み込まれたらアニメーション画像を表示し、それを非表示にして他の2つの画像を表示したいのですが、アレイを使用して画像をアニメーション化し、タイマーを設定して関数onTimerを繰り返し呼び出します。この関数内でチェックします。画像が1回アニメーション化される場合は、タイマーを停止して他の2つの画像を表示します
プロジェクトを実行すると、画面をクリックするまで2つの画像が表示されないことを除けば、正常に機能します。
彼女はコードです:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
outline.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"traffic.png"],
[UIImage imageNamed:@"red.png"],
[UIImage imageNamed:@"yellow.png"],
[UIImage imageNamed:@"green.png"], nil];
[outline setAnimationRepeatCount:1];
outline.animationDuration = 4;
[outline startAnimating];
timer = [NSTimer scheduledTimerWithTimeInterval: 1.0/30.0 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
}
-(void) onTimer {
if (![outline isAnimating] == TRUE){ // if animation has been played once, do something
NSLog(@"animation stopped, do something");
rannan.image = [UIImage imageNamed:@"rannan.png"];
outline.image = [UIImage imageNamed: @"outline.png"];
[ timer invalidate];
// do something
}
}
プロジェクトの実行中に画面をクリックするまで、何らかの理由でisAnimatingがTRUEに設定されていないようです。
私がこれに対する答えを見つけることを願っています:)