4

我创建了一组 2 张图像,然后进行动画处理,一切正常。但现在我希望动画在重复一次后停止,我的意思是动画将从第一个图像开始,移动到第二个图像并停止(第二个图像将保留在我的 imageview 上)。我该怎么做?这是我的代码:

    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

假设 errorNumberOne 是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 的回答非常适合制作动画。但是,对于这种特殊情况,您只有两个图像并且您只需要在它们之间“交换”它们可能更简单地在延迟后更改图像。

-(void)swapImage {

      [mistakeNumberOne setImage:mistakeOneB];
}

然后延迟swapImage:

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

希望这可以帮助

于 2012-06-30T19:34:49.700 回答