问题描述
|
我正在尝试运行效果很好的动画,但我希望最后一个数字保留在屏幕上。当前它遍历数组然后消失..反正有没有停止传入的数字动画?
- (void)playAnimationToNumber:(int)number{
NSMutableArray *imagesForAnimation = [[NSMutableArray alloc] initWithCapacity:0];
for (int counter=1; counter<=number; counter++) {
Nsstring *imageNameForFirstNumber = [Nsstring stringWithFormat:@\"Flap%i.png\",counter];
[imagesForAnimation addobject:[UIImage imageNamed:@\"FlapMoving1.png\"]];
[imagesForAnimation addobject:[UIImage imageNamed:@\"FlapMoving2.png\"]];
[imagesForAnimation addobject:[UIImage imageNamed:imageNameForFirstNumber]];
}
animationArray.animationImages = [NSArray arrayWithArray:imagesForAnimation];
animationArray.animationDuration = 1.2;
animationArray.animationRepeatCount = 1;
[animationArray startAnimating];
[self.view addSubview:animationArray];
[imagesForAnimation release];
}
解决方法
根据UIImageView startAnimating:如何使它停在系列中的最后一张图像上?动画结束后显示的图像在\“ image \”属性中给出。所以这样的事情应该可以解决问题:
animationArray.image = [imagesForAnimation lastObject];
, for (int counter=1; counter<number; counter++) {
...
}
[imagesForAnimation addObject:[UIImage imageNamed:@\"FlapMoving1.png\"]];
[imagesForAnimation addObject:[UIImage imageNamed:[NSString stringWithFormat:@\"Flap%i.png\",number]]];
迭代除最后一个(计数器)以外的所有图像,然后将最后一个图像添加到动画数组中应该会有所帮助。告诉我它是如何工作的。