ios加載GIF圖片

原生的UIImageView是不支持gif格式圖片的,以下是我總結(jié)的三種方法,希望可以幫助到你。

一、用UIWebView加載本地gif文件

-(void)webViewLoadGif {
    UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
    
    NSString *path = [[NSBundle mainBundle] pathForResource:@"dancer" ofType:@"gif"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSData *data = [NSData dataWithContentsOfURL:url];
    NSURL *baseURL = [url URLByDeletingLastPathComponent];
    
    [webView loadData:data MIMEType:@"image/gif" textEncodingName:@"utf-8" baseURL:baseURL];
    [self.view addSubview:webView];
    
}
dancer.gif

webView的缺點(diǎn)就是不好控制圖片的大小,當(dāng)然你也可以把它做成html文件,直接用webview加載就可以了。

二、用SDWebImage加載本地的gif文件

SDWebImage4.0以后,加載gif圖片,需要在SDWebImage的基礎(chǔ)上再單獨(dú)導(dǎo)入FLAnimatedImageView和FLAnimatedImage文件,然后把UIImageView和UIimage用上邊這兩個(gè)類替換掉就可以了。

//首先把本地gif文件轉(zhuǎn)成NSData格式
-(NSData *)imageData {
    if (!_imageData) {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"magic" ofType:@"gif"];
        _imageData = [NSData dataWithContentsOfFile:path];
    }
    return _imageData;
}
-(void)SDLoadLocalGif {
    FLAnimatedImageView *gifView = [[FLAnimatedImageView alloc] initWithFrame:self.view.bounds];  
    FLAnimatedImage *image = [FLAnimatedImage animatedImageWithGIFData:self.imageData];
    gifView.animatedImage = image;
    gifView.contentMode = UIViewContentModeScaleAspectFit;
    [self.view addSubview:gifView];
}

三、用SDWebImage加載網(wǎng)絡(luò)的gif文件

這個(gè)就更加簡單了,直接用sd_setImageWithURL方法就可以加載,前提也是要用FLAnimatedImageView來加載。

-(void)SDLoadNetwarkGif {
    FLAnimatedImageView *gifView = [[FLAnimatedImageView alloc] initWithFrame:self.view.bounds];
    [gifView sd_setImageWithURL:[NSURL URLWithString:@"http://img4.duitang.com/uploads/item/201211/24/20121124112047_KUFxK.gif"]];
    gifView.contentMode = UIViewContentModeScaleAspectFit;
    [self.view addSubview:gifView];
}

magic.gif

需要注意的是SDWebImage的SDK本身并不包含F(xiàn)LAnimatedImageView和FLAnimatedImage文件,需要單獨(dú)從GitHub下載。
附上demo:https://github.com/melody1237/loadGif

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1.系統(tǒng)UIImageView 多張圖片組成動畫 /** * UIImageView 動畫 * Memor...
    zhengelababy閱讀 8,912評論 3 6
  • Gif圖片是非常常見的圖片格式,尤其是在聊天的過程中,Gif表情使用地很頻繁。但是iOS竟然沒有現(xiàn)成的支持加載和播...
    weicyNO_1閱讀 1,801評論 0 0
  • Gif圖片是非常常見的圖片格式,尤其是在聊天的過程中,Gif表情使用地很頻繁。但是iOS竟然沒有現(xiàn)成的支持加載和播...
    iOS_大菜鳥閱讀 3,043評論 1 5
  • 1. 原生方法: UIWebView特點(diǎn):加載速度略長,性能更優(yōu),播放的gif動態(tài)圖更加流暢。 UIImagVie...
    奮斗的蝸牛閱讀 4,388評論 1 1
  • 早上好!#幸福實(shí)修#~每天進(jìn)步1%#幸福實(shí)修10班-22號-@金珠清--富陽 20170812(19/30) 【幸...
    金珠清閱讀 268評論 1 1