4

2 つの画像の配列を作成し、アニメーション化すると、すべてが完全に機能します。しかし今、アニメーションを1回繰り返した後に停止したいのですが、アニメーションは最初の画像から始まり、2番目の画像に移動して停止します(2番目の画像は画像ビューに残ります)。どうすればできますか?ここに私のコードがあります:

    UIImage *mistakeOne = [UIImage imageNamed:@"Xmark.png"];
    UIImage *mistakeOneB = [UIImage imageNamed:@"XmarkWhite.png"];
    NSMutableArray *animation = [[NSMutableArray alloc] initWithObjects:mistakeOne, mistakeOneB , nil];
    [mistakeNumberOne setAnimationImages:animation];
    mistakeNumberOne.animationDuration = 5.0;
    [mistakeNumberOne startAnimating]

ありがとう!

4

2 に答える 2

8

ミスナンバーワンがUIImageView

[mistakeNumberOne animationRepeatCount:1];

アニメーションの後に画像を保持したい場合は、アニメーションの前に UIImageview で目的の画像を設定します。

mistakeNumberOne.image = myDesiredImage;

アニメーションの後、画像が表示されます。

すべてを一緒に入れて:

 UIImage *mistakeOne = [UIImage imageNamed:@"Xmark.png"];
 UIImage *mistakeOneB = [UIImage imageNamed:@"XmarkWhite.png"];
 NSMutableArray *animation = [[NSMutableArray alloc] initWithObjects:mistakeOne, mistakeOneB , nil];
 [mistakeNumberOne setAnimationImages:animation];
 mistakeNumberOne.animationDuration = 5.0;
 [mistakeNumberOne animationRepeatCount:1];
 mistakeNumberOne.image = mistakeOneB;
 [mistakeNumberOne startAnimating];
于 2012-06-30T19:00:24.833 に答える
2

Pfitz の答えは、アニメーション化に最適です。ただし、これは2つの画像しかなく、それらの間で「交換」するだけでよいという特定のケースであるため、遅延後に画像を変更する方がおそらく簡単です。

-(void)swapImage {

      [mistakeNumberOne setImage:mistakeOneB];
}

次に swapImage を遅らせます。

[self performSelector:@selector(swapImage) withObject:nil afterDelay:5.0];

お役に立てれば

于 2012-06-30T19:34:49.700 に答える