一次旋转后停止动画GIF

时间:2014-08-12 05:38:08

标签: objective-c cocoa-touch uiimage

我正在使用uiimage-from-animated-gif库通过UIImage显示动画GIF。它有效,但我需要停止动画或在一次完整的旋转后停止显示imageView2

我使用以下代码为GIF设置动画:

NSURL *url2 = [[NSBundle mainBundle] URLForResource:@"dove-animate" withExtension:@"gif"];
self.imageView2.image = [UIImage animatedImageWithAnimatedGIFData:[NSData dataWithContentsOfURL:url2]];

3 个答案:

答案 0 :(得分:1)

如果您知道动画持续时间,那么您可以在该持续时间之后将静态图像设置为图像视图。

例如,如果持续时间是2秒,那么

[self performSelector:@selector(stopAnimating) withObject:nil afterDelay:2.0f];

-(void)stopAnimating{
    [self.imageView2 setImage:[UIImage imageNamed:@"dove-animate.gif"]];
}

答案 1 :(得分:1)

如果您将图像存储在捆绑包中而不是从网络上加载图像,则无需使用gif&#39。你实际上可以有一个完整的图像文件夹(png' s质量好,提供透明度)。然后:

  1. 通过UIImage或类似内容将每张图片加载到UIImage + imageNamed:
  2. 创建UIImageView并将animationImages设置为您的数组。
  3. 根据需要在图片视图上调用startAnimatingstopAnimating

答案 2 :(得分:0)

添加计时器以消除imageview。然后看起来像动画停止了

{
NSTimer *timer;

    timer =  [NSTimer scheduledTimerWithTimeInterval: 4
                                              target: self
                                            selector: @selector(removeAnimation)
                                            userInfo: nil
                                             repeats: NO];
}

-(void)removeAnimation
{
imageview.hidden=yes;
}