美文网首页
SDWebImage加载gif图

SDWebImage加载gif图

作者: 草原野马 | 来源:发表于2019-01-18 16:00 被阅读31次
    • 首先看一下项目中的gif 图片的效果。 后台返回的效果.gif

    当我用SDWebImage 自带的方法加载的时候,突然发现这个GIF图的抖动效果变慢了,而不是速度很快的。 如果gif图多的话还会造成内存暴涨。

    • 分析源码找原因

    问题出在获取每一帧图像的显示时间仅仅是为了计算gif动画的总时长,并没有给每一帧图像的显示时间分配相应的权重,导致每一帧图像显示的时间为平均时间,视觉上给人带来了卡顿效果

    • 以前的调用方法

    在SDWebImage 4.0.0 版本之前想要通过url加载展示gif效果, 只需要用 UIImageView 创建的对象调用下面的方法就能实现
    1.#import<SDWebImage/UIImageView+WebCache.h>
    2.-(void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder;

    • gif 加载问题解决办法

    但在 4.0.0 版本之后换了另外一种方式, 新增加了 FLAnimatedImageView 来实现动态图片的展示,继承自 UIImageView ,首先要 pod 引入下面的框架:pod 'SDWebImage/GIF'。然后使用 FLAnimatedImageView 来替换之前的 UIImageView 创建的对象, 再用该对象调用 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 的需要导入 pod 'SDWebImage/WebP' ,但是这个pod 会卡在了下载 Installing libwebp (0.6.0) 的地方,
    所以这个需要翻墙后,还需要设置一些代理。比较麻烦,可以参考pod 'SDWebImage/WebP'参考链接
    如果你的框架已经确定下来了不好修改为YYWebImage了,那么久最后手动导入SDWebImage。

    1. 先从github 上下载SDWebImage ,放入项目中
      2 然后再下载YYImage 那里面的WebP.framework 拖入项目中
      3 为了让SDWebImage 支持webp格式图片, 需要设置一下


      设置

      然后就可以实现webp 格式的图片加载了。

    加载webp的参考链接

    相关文章

      网友评论

          本文标题:SDWebImage加载gif图

          本文链接:https://www.haomeiwen.com/subject/paynhqtx.html