iOS利用UIImageView和WebView分别实现帧动画以及gif图片加载

利用UIImageView实现简单的帧动画

在开发中我们经常要展示一些具有动态效果的图片,就像我们所见到的gif格式的图片那样,其实这样简单的动画只要我们获得动画的每一帧图片,就可以利用UIImageView实现了。

比如我有以下一组图片资源


图片资源来源于网络,侵权即删

我们可以利用这些图片实现一个小鸟飞翔的动画

NSArray * imgsArr = @[[UIImage imageNamed:@"1.jpg"],[UIImage imageNamed:@"2.jpg"],[UIImage imageNamed:@"3.jpg"],[UIImage imageNamed:@"4.jpg"],[UIImage imageNamed:@"5.jpg"],[UIImage imageNamed:@"6.jpg"],[UIImage imageNamed:@"7.jpg"]];
// 设置动画图片数组
[imageView setAnimationImages:imgsArr];
// 设置动画持续时间
[imageView setAnimationDuration:0.5];
// 设置动画重复次数  (当值为0时,表示无限次)  
imageView.animationRepeatCount = 5;
// 开始动画
[imageView startAnimating];

效果如下:


利用UIWebView加载gif动图

我们使用UIWebView加载gif动图的主要目的是为了使用html中的<img>标签,那么我们来看一下是如何实现的:

NSURL * baseURL = [[NSBundle mainBundle] resourceURL];  // 获得工程的根目录url
NSString * gifHtmlStr = @"<img src='loading.gif', style='width:100%; height:calc(width)'>"; // 创建一段<img>标签的html

UIWebView * gifWeb = [[UIWebView alloc] initWithFrame:CGRectMake(100, 100, 40, 40)];
[gifWeb loadHTMLString:gifHtmlStr baseURL:baseURL]; // 加载html语句
[self.view addSubview:gifWeb];
效果

⚠️ 注意:创建的含有<img>标签的语句中一定要对<img>标签进行宽高样式的设置,不然gif图片会按照它本身的像素尺寸显示,这里是将宽高设置成与webView同宽高:style='width:100%; height:calc(width)',你也可以自定义<img>标签的宽高,例如:style='width:20px; height:20px'

版权声明:出自MajorLMJ技术博客的原创作品 ,转载时必须注明出处及相应链接!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,294评论 4 61
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,720评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,533评论 5 13
  • 有一年春节,我住在西都农村的五弟家晾咸鱼和堆放谷物的房间里。是临时搭起的床铺。我早早就睡下,也许是八九点钟吧,乡村...
    苦桃1阅读 994评论 0 0
  • 太空站,宇航员正想打盹,突然“咚咚咚”的响起急促敲门声。 宇航员抬头看向门口,有些不敢相信,突然“咚咚咚”又是三声...
    起舞清风阅读 2,865评论 1 1