iOS精选博文iOS日常iOS开发

iOS 的 Gif 渲染引擎 FLAnimatedImage

2016-09-10  本文已影响183人  卟师

公司的项目有个首页加载一张2M左右的git图,刚做的时候是使用的SDWebImage里面的方法:

+ (UIImage *)sd_animatedGIFNamed:(NSString *)name;
+ (UIImage *)sd_animatedGIFWithData:(NSData *)data;

​使用之后发现这个方法会使内存迅速上增300M,在网上找了一些方法:

//在didReceiveMemoryWarning方法中释放SDImage的缓存即可!
- (void)didReceiveMemoryWarning {
       [superdidReceiveMemoryWarning];
        // Dispose of     any resources that can be recreated.
       [[SDWebImageManagersharedManager]cancelAll];
       [[SDImageCachesharedImageCache]clearDisk];
}

​但是使用之后发现效果并不明显,于是使用了这个FLAnimatedImage,瞬间没存回到原来的位置.

FLAnimatedImage 是 iOS 的一个渲染 Gif 动画的引擎。

1.可同时播放多个 Gif
2.动画,速度媲美桌面浏览器
3.可变帧延迟
4.内存占用小
5.可在第一次循环播放时消除或者阻止延迟
6.动画的帧延迟解析性能媲美浏览器

示例代码:

FLAnimatedImage *image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif"]]];
FLAnimatedImageView *imageView = [[FLAnimatedImageView alloc] init];
imageView.animatedImage = image;
imageView.frame = CGRectMake(0.0, 0.0, 100.0, 100.0);
[self.view addSubview:imageView];

效果图:

github地址:https://github.com/Flipboard/FLAnimatedImage 


长按关注:

QQ群:427763454

欢迎你的投稿,展示的你的技术文章:812920365@qq.com

上一篇下一篇

猜你喜欢

热点阅读