xcode動態圖,ios實現動態圖,ios gif,暫停和繼續播放


其實網上GitHub有很多第三方的,但是用起來比較麻煩,這里介紹最簡單的一種方式,自己就可以實現,(點擊按鈕開始播放動態圖)

 

1,集成SDWebImage之后,引入頭文件#import "UIImage+GIF.h"

2.初始化按鈕,(loadingImageView是定義的全局的UIImageView,自己定義下)

   

 self.loadingImageView= [[UIImageView alloc]init];
    UIButton* btn=[[UIButton alloc]initWithFrame:CGRectMake(0, 100, 50, 20)];
    btn.backgroundColor=[UIColor redColor];
    [self.view addSubview:btn];
    [btn addTarget:self action:@selector(initLoadingImageView) forControlEvents:UIControlEventTouchUpInside];

  

3.點擊按鈕就可以實現了,非常簡單

- (void)initLoadingImageView
{
    
    NSString  *name = @"圖片的名字.gif";
    NSString  *filePath = [[NSBundle bundleWithPath:[[NSBundle mainBundle] bundlePath]] pathForResource:name ofType:nil];
    NSData  *imageData = [NSData dataWithContentsOfFile:filePath];
    
    if (!self.loadingImageView) {
        self.loadingImageView = [[UIImageView alloc]init];
    }
    self.loadingImageView.backgroundColor = [UIColor clearColor];
    
    self.loadingImageView.image = [UIImage sd_animatedGIFWithData:imageData];

//這里可以修改要實現播放的gif的frame
    self.loadingImageView.frame = CGRectMake(0, 100, 200, 100);
    
    [self.view addSubview:self.loadingImageView];
    
    [self.view bringSubviewToFront:self.loadingImageView];
    
}

 

如果想實現gif圖片的暫停和繼續播放的功能加入以下兩個方法就可以了

1.首先再viewDidLoad加入這個(player是CALayer類型的,定義為全局的)

//    設置imageView的layer
    player = self.loadingImageView.layer;

 

2.實現這兩個方法,需要用哪個就點擊哪個直接把player傳過去就可以了

//暫停gif的方法

-(void)pauseLayer:(CALayer*)layer
{
    CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
    layer.speed = 0.0;
    layer.timeOffset = pausedTime;
}

//繼續gif的方法
-(void)resumeLayer:(CALayer*)layer
{
    CFTimeInterval pausedTime = [layer timeOffset];
    layer.speed = 1.0;
    layer.timeOffset = 0.0;
    layer.beginTime = 0.0;
    CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] -    pausedTime;
    layer.beginTime = timeSincePause;
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM