我创建了一个包含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]
谢谢!
答案 0 :(得分:8)
假设wrongNumberOne是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];
答案 1 :(得分:2)
Pfitz的答案很适合制作动画。但是,对于这种特殊情况,你只有两个图像而你只需要在它们之间“交换”它可能更简单,只需在延迟后更改图像。
-(void)swapImage {
[mistakeNumberOne setImage:mistakeOneB];
}
然后延迟swapImage:
[self performSelector:@selector(swapImage) withObject:nil afterDelay:5.0];
希望这会有所帮助