0

我有一个图像数组动画,但它是一个连续循环。如何让它只循环一个循环并在最后一帧停止?

- (void) balloonAnimation
{
    NSMutableArray *balloonAnimationImages = [NSMutableArray arrayWithCapacity:27];

   for (NSInteger i = 0; i < 27; i++) {
       NSString *nameOfImage = [NSString stringWithFormat:@"balloons%d.png", i+1];
       UIImage *image = [UIImage imageNamed:nameOfImage];
       [balloonAnimationImages addObject:image];       
    }

    //animate here
    self.imgBalloon.animationImages = balloonAnimationImages;
    self.imgBalloon.animationDuration = 5.0f;
    [self.imgBalloon startAnimating];    
}
4

2 回答 2

3

尝试这个:

self.imgBaloon.animationRepeatCount = 1;

编辑:正如@Elliott Perry 在他的回答中所说,您需要将最后一帧分配给该image属性。这是代码:

self.imgBalloon.animationImages = balloonAnimationImages;
self.imgBalloon.animationDuration = 5.0f;
self.imgBaloon.animationRepeatCount = 1;
self.imgBaloon.image = [balloonAnimationImages lastObject];
[self.imgBalloon startAnimating]; 
于 2013-03-23T16:40:46.683 回答
3

我可以在最后一帧停止 UIImageView 动画吗?

UIImageView 类的图像属性具有以下文档:“如果动画图像属性包含 nil 以外的值,则不使用此属性的内容。”

因此,在 iOS4+ 中保持动画最后一帧的技巧是首先将 image 属性设置为最后一帧(而 animationImages 仍为 nil),然后设置 animationImages 属性并调用 startAnimating。动画完成后,将显示图像属性。无需回调/委托。

于 2013-03-23T17:37:03.430 回答