iOS 播放 gif最棒的库,简单高效。
Animated GIFs implemented the right way on iOS
iOS上播放gif,没有自带的API,所以我找了现成的库,借过来使用。github上我对比了3个star数目较多的代码,最终选择了OLImageView。
参与对比的是OLImageView,iOS_AnimatedGif,Animated-GIF-iPhone。
选择合适的库
对比的指标,我选择
1. 效率高,占用内存小
只播放同样一个Gif,OLImageView占用内存是后两者的4/5。
(这个测试可能不完备,没有测试同时播放多个gif,或者播放不同类型gif的对比。但对我使用来讲,只播放这个Gif,就可以说明问题了。)
2. 代码维护活跃
OLImageView近来都有更新。
后两个中,Animated-GIF-iPhone是从iOS_AnimatedGif分出来的,两个都已经分别3年多、1年多没有更新了,虽然去年iOS_AnimatedGif的作者在blog上说要做对ARC的支持,但也没看更新。
OLImageView用法
大家可以在github上,看到OLImageView的用法,用法是描述如何从code中创建和使用,非常简单直白。
我在这里介绍一下实际在Storyboard中使用的方式。
1. 文件拖入工程
下载的OLImageView文件共有6个,但只要把下面四个文件拖进你的工程即可:
OLImageViewFilesInProject
2. Storyboard中设置UIImageView为OLImageView
正常拖入一个UIImageView,在这个view的CustomClass中设定为OLImageView:
CustomClass
在Outlet中,设定为OLImageView类型
Outlet
3. code中操作
在合适的地方,把gif设定进去,注意这里的UIImage要换成OLImage:
[self.guideImageGif1 setImage:[OLImage imageNamed:@"peaceful.gif"]];//注意这里的image要使用OLImage
我的gif是在scrolllView中播放,所以我还需要设定frame:
[self.guideImageGif1 setFrame:self.myScrollView.frame];
最后
要是有时间,你尽量阅读一下库的代码。知其然也知其所以然。
我在这里也就写写用法,比较浅显。目的是能让有同样需求的同学,减少一点儿时间开销,哪怕只减少了几分钟,也值得了。
网友评论