2012-06-30 116 views
4

我创建了一个包含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] 

谢谢!

回答

8

假设mistakeNumberOne是一个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]; 
+0

但后来我的ImageView是消失...... – user1492776

+0

添加信息的答案 – Pfitz

+0

动画STRAT与第一图像,然后显示第二张图像,然后我的imageview(包含我的动画)消失(我没有看到任何图像)。 – user1492776

2

Pfitz的答案是伟大的动画。但是,对于这种情况,您只有两幅图像,您只需要在两幅图像之间进行“交换”,这可能更简单,只需延迟一段时间即可更改图像。

-(void)swapImage { 

     [mistakeNumberOne setImage:mistakeOneB]; 
} 

再延时swapImage:

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

希望这有助于

+0

不错的选择! +1! – Pfitz