-
首先看一下項目中的gif 圖片的效果迎膜。
當(dāng)我用SDWebImage 自帶的方法加載的時候诉位,突然發(fā)現(xiàn)這個GIF圖的抖動效果變慢了鲫尊,而不是速度很快的煤辨。 如果gif圖多的話還會造成內(nèi)存暴漲办悟。
- 分析源碼找原因
問題出在獲取每一幀圖像的顯示時間僅僅是為了計算gif動畫的總時長尘奏,并沒有給每一幀圖像的顯示時間分配相應(yīng)的權(quán)重,導(dǎo)致每一幀圖像顯示的時間為平均時間病蛉,視覺上給人帶來了卡頓效果
- 以前的調(diào)用方法
在SDWebImage 4.0.0 版本之前想要通過url加載展示gif效果炫加, 只需要用 UIImageView 創(chuàng)建的對象調(diào)用下面的方法就能實現(xiàn)
1.#import<SDWebImage/UIImageView+WebCache.h>
2.-(void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder;
- gif 加載問題解決辦法
但在 4.0.0 版本之后換了另外一種方式, 新增加了 FLAnimatedImageView 來實現(xiàn)動態(tài)圖片的展示铺然,繼承自 UIImageView 俗孝,首先要 pod 引入下面的框架:pod 'SDWebImage/GIF'。然后使用 FLAnimatedImageView 來替換之前的 UIImageView 創(chuàng)建的對象魄健, 再用該對象調(diào)用 sd_setImageWithURL: 方法即可:
1.#import <SDWebImage/FLAnimatedImageView+WebCache.h>
2.FLAnimatedImageView *imageView = [[FLAnimatedImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
[self.view addSubview:imageView];
3.NSURL *url = [NSURL URLWithString:(NSString *)object.strIcon];
[imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"icon_placeholder"]];
加載gif 圖還有一個框架就是YY大神的 https://github.com/ibireme/YYWebImage
- SDWebImage 加載webp 格式的圖片赋铝,
SDWebImage 加載webp 格式的圖片,我們還需要做一些額外的操作
比如用pod 的需要導(dǎo)入 pod 'SDWebImage/WebP' 沽瘦,但是這個pod 會卡在了下載 Installing libwebp (0.6.0) 的地方革骨,
所以這個需要翻墻后,還需要設(shè)置一些代理析恋。比較麻煩良哲,可以參考pod 'SDWebImage/WebP'參考鏈接
如果你的框架已經(jīng)確定下來了不好修改為YYWebImage了,那么久最后手動導(dǎo)入SDWebImage助隧。
-
先從github 上下載SDWebImage ,放入項目中
2 然后再下載YYImage 那里面的WebP.framework 拖入項目中
3 為了讓SDWebImage 支持webp格式圖片筑凫, 需要設(shè)置一下
然后就可以實現(xiàn)webp 格式的圖片加載了。