【ios開發(fā)】gif圖片加載不卡頓且避免內(nèi)存暴增的方法

項目測試過程中, 發(fā)現(xiàn)了一個問題, 界面滑動時卡頓, 而且還會閃退。

沒有無緣故的閃退, 也沒有無緣由的卡頓, 說到底還是代碼寫的有問題,那就去分析一下吧。

先看之前的代碼:

雖然使用了SDWebImage的類來加載, 但是用的是sd_animatedGIFWithData的方法。這個方法是SDWebImage4.0之前加載gif圖片的方法, 使用NSData來處理圖片數(shù)據(jù), 并沒有緩存到數(shù)據(jù), 每次加載都要去處理一遍, 造成內(nèi)存的暴增以及界面顯示的卡頓。

怎么解決呢?

很簡單, 升級你的SDWebImage到4.0以上, 然后使用FLAnimatedImageView來進行加載。

具體步驟:
  • pod install
    Podfile文件中將pod SDWebImage 改為如下代碼:
pod 'SDWebImage', '~> 4.0.0'
pod 'SDWebImage/GIF'
pod 'FLAnimatedImage', '~> 1.0'

pod insatll成功后是這樣的:

  • 導(dǎo)入頭文件

在你需要的類里面先導(dǎo)入頭文件:
#import "FLAnimatedImageView+WebCache.h"

創(chuàng)建一個FLAnimatedImageView的對象:
@property (nonatomic, strong) FLAnimatedImageView *gifIconImage;

懶加載處理:

- (FLAnimatedImageView *)gifIconImage
{
    if (!_gifIconImage)
    {
        _gifIconImage = [[FLAnimatedImageView alloc] init];
    }
    return _gifIconImage;
}
  • 使用

在你的cell或者任何你需要放置gif的地方,使用如下代碼:

 NSURL *imgUrl = [[NSBundle mainBundle] URLForResource:@"qulit" withExtension:@"gif"];
 [self.gifIconImage sd_setImageWithURL:imgUrl];

這里使用了本地圖片, 你也可以直接用這個方法加載網(wǎng)絡(luò)圖片, 從服務(wù)返回的圖片等~~

好了,到此完工,項目里cell滾動卡頓以及內(nèi)存暴增的問題完美解決~~

開心到飛起?。?!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,665評論 1 32
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,383評論 4 61
  • 作者:記渡——夭夭 1 都說,30歲之前的容貌是父母給的,30歲之后的容貌是自己給的,關(guān)于這個論點,32歲的阿君分...
    記渡閱讀 429評論 0 3
  • 一人 盡是無限美好 一人 盡是無限寂寞 一人 誰來伴他? 陪伴 如此 之煩 曾想要幫 曾想要別 為此而傷 只為 你...
    如戀人般的你閱讀 251評論 0 2
  • 小時候看星爺?shù)摹洞笤捨饔巍?,總是嘻嘻哈哈的,現(xiàn)在再回過頭去看,又會淚流滿面。我們每個人都像是劇中的那個孫猴子,總有...
    敢_閱讀 276評論 0 0

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