-1

このコードを使用してタイマーを作成して実行すると、問題なく動作します。

NSDate *d = [NSDate dateWithTimeIntervalSinceNow: 6.0];
NSTimer *t = [[NSTimer alloc] initWithFireDate: d
                              interval: 6
                              target: self
                              selector:@selector(startAnimation)
                              userInfo:nil repeats:YES];

NSRunLoop *runner = [NSRunLoop currentRunLoop];
[runner addTimer:t forMode: NSDefaultRunLoopMode];

私のstartAnimationメソッドには

[myUIImageView startAnimating];

メソッドは 6 秒ごとに実行されますが、アニメーションは 1 回実行され、繰り返されません。

なぜこれが起こっているのですか?


編集。私のアニメーションは次のように設定されています。

-(void) setUpAnimation{
    myUIImageView  =  [[UIImageView alloc] initWithFrame:self.animatedView.frame];
    myUIImageView.animationImages = [NSArray arrayWithObjects:
                                  [UIImage imageNamed:@"1.png"],
                                  [UIImage imageNamed:@"2.png"],
                                  [UIImage imageNamed:@"3.png"],
                                   nil];


myUIImageView.animationDuration = 3;
myUIImageView.animationRepeatCount = 1;

//add the animation view to the main window;
[self.view addSubview:myUIImageView];  

}

上で述べたように、これは一度だけうまく動作しますが、その後は繰り返されません! ありがとう :)

4

1 に答える 1

1

startAnimating一度実行するように設定されたアニメーションを開始します。アニメーションを停止することはないため、1 秒を送信startAnimatingしても何も起こりません。試す:

-(void)startAnimation {
    [myUIImageView stopAnimating];
    [myUIImageView startAnimating];
}
于 2012-08-31T14:12:12.137 に答える