iOS - 多種Gif播放方式

** 1.系統(tǒng)UIImageView 多張圖片組成動(dòng)畫(幀動(dòng)畫)**

-(void)MSUGifPlay  {  
    //    NSArray  *array=@[@"image0.png",@"image1.png",@"image2.png"];  
    //    UIImageView  *imgview= [UIImageView imageViewAnimation:CGRectMake(50,80, 550/2, 200)  imageNames:array duration:1];      
    UIImageView* animatedImageView = [[UIImageView alloc] initWithFrame:CGRectMake(50,80, 550/2, 200)];   
    animatedImageView.animationImages =@[[UIImage imageNamed:@"image0"],     

** 2.利用第三方庫**

 **1)SDWebImageView里的UIImage+GIF**

        -(void)MSUGifPlay  {    
            UIImage  *image=[UIImage sd_animatedGIFNamed:@"test"];  
            UIImageView  *gifview=[[UIImageView alloc]initWithFrame:CGRectMake(50,80,image.size.width, image.size.height)];    
            gifview.backgroundColor=[UIColor orangeColor];      
            gifview.image=image;   
           [self.view addSubview:gifview];
      } 

**2)IImageView-PlayGIF  YFGIFImageView**

        /**   *  UIImageView-PlayGIF 是 UIImageView 子類,用來顯示 GIF。UIIMageView-PlayGIF 性能高,而且占用的內(nèi)存很低。   *  https://github.com/yfme/UIImageView-PlayGIF   *  Memory-21.9M   *  #import "YFGIFImageView.h"   */  
    -(void)MSUGifPlay  {     
         NSString  *gifPath=[[NSBundle mainBundle] pathForResource:@"test" ofType:@"gif"];
         YFGIFImageView  *gifview=[[YFGIFImageView alloc]init];    
         gifview.backgroundColor=[UIColor clearColor];    
         gifview.gifPath=gifPath;   
         gifview.frame=CGRectMake(50, 100,550/2, 200);    
          [self.view addSubview:gifview];   
          [gifview startGIF];
      }    

 **3)SCGIFImageView**

        /**   *  摘要: SCGIFImageView是一個(gè)開源的GIF圖片動(dòng)畫顯示控件,通過將GIF的每一幀都取出來生成UIImage對(duì)象存放在一個(gè)數(shù)組中,然后使用NSTimer進(jìn)行動(dòng)畫輪轉(zhuǎn)。   *  https://github.com/shichangone/SCGifExample   *  Memory-22.5M   *  #import "SCGIFImageView.h"   */  
    -(void)MSUGifPlay  {   
       NSString* filePath = [[NSBundle mainBundle] pathForResource:@"test.gif" ofType:nil]; 
       NSData* imageData = [NSData dataWithContentsOfFile:filePath];    
       SCGIFImageView* gifImageView = [[SCGIFImageView alloc]init];      
       [gifImageView setData:imageData];     
        gifImageView.frame = CGRectMake(50,100, gifImageView.image.size.width, gifImageView.image.size.height); 
       [self.view addSubview:gifImageView]; 
     }    

 **4)YLGIFImage**

            /**   *  YLGIFImage 是異步 GIF 圖像解碼器和圖像查看器,支持播放 GIF 圖像,而且使用很少的內(nèi)存。   *  https://github.com/liyong03/YLGIFImage   *  Memory-22.7M   *  #import "YLImageView.h"   *  #import "YLGIFImage.h"   */ 
     -(void)MSUGifPlay  { 
         YLImageView* imageView = [[YLImageView alloc] initWithFrame:CGRectMake(0, 160, 320, 240)];    
        [self.view addSubview:imageView];  
        imageView.image = [YLGIFImage imageNamed:@"test.gif"]; 
     }    

3. 為MBProgressHUD 添加加載動(dòng)畫

        /**   *  MBProgressHUD 添加加載動(dòng)畫   *  Memory-23.8M   *  #import "UIImage+GIF.h"   *  #import "MBProgressHUD.h"   */  
    -(void)MSUGifPlay  {    
          UIImage  *image=[UIImage sd_animatedGIFNamed:@"test"];   
          UIImageView  *gifview=[[UIImageView alloc]initWithFrame:CGRectMake(0,0,image.size.width/2, image.size.height/2)];     
         gifview.image=image;       
         MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
         hud.color=[UIColor grayColor];//默認(rèn)顏色太深了     
         hud.mode = MBProgressHUDModeCustomView;  
         hud.labelText = @"加載中...";      
         hud.customView=gifview; 
     }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,410評(píng)論 4 61
  • 這個(gè)世界很大, 直到這個(gè)年齡我們才相遇, 這個(gè)世界很小, 小到即使奔赴遠(yuǎn)方, 我們?nèi)钥上嘤觥?在月光的掩映下。 我...
    九九夢閱讀 190評(píng)論 0 0
  • 靜態(tài)變量與成員變量的區(qū)別: 靜態(tài)變量是放在靜態(tài)區(qū),屬于類的一部分 只有一份. 成員變量是放在堆區(qū),屬于對(duì)象,每...
    Miss_差不多閱讀 163評(píng)論 0 0

友情鏈接更多精彩內(nèi)容