iPhone SDK提供了多种动画手段,UIView、UIImageView和CALayer都支持动画。但如何处理常见的gif动画呢?UIWebView提供了答案,代码如下:

1. 使用UIWebView播放
    // 设定位置和大小
    CGRect frame = CGRectMake(50,50,0,0);
    frame.size = [UIImage imageNamed:@"guzhang.gif"].size;
    // 读取gif图片数据
    NSData *gif = [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"guzhang" ofType:@"gif"]];
    // view生成
    UIWebView *webView = [[UIWebView alloc] initWithFrame:frame];
    webView.userInteractionEnabled = NO;//用户不可交互
    [webView loadData:gif MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];
    [self.view addSubview:webView];
    [webView release];

2.将gif图片分解成多张png图片,使用UIImageView播放。
代码如下:
 UIImageView *gifImageView = [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    NSArray *gifArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"1"],
                                                  [UIImage imageNamed:@"2"],
                                                  [UIImage imageNamed:@"3"],
                                                  [UIImage imageNamed:@"4"],
                                                  [UIImage imageNamed:@"5"],
                                                  [UIImage imageNamed:@"6"],
                                                  [UIImage imageNamed:@"7"],
                                                  [UIImage imageNamed:@"8"],
                                                  [UIImage imageNamed:@"9"],
                                                  [UIImage imageNamed:@"10"],
                                                  [UIImage imageNamed:@"11"],
                                                  [UIImage imageNamed:@"12"],
                                                  [UIImage imageNamed:@"13"],
                                                  [UIImage imageNamed:@"14"],
                                                  [UIImage imageNamed:@"15"],
                                                  [UIImage imageNamed:@"16"],
                                                  [UIImage imageNamed:@"17"],
                                                  [UIImage imageNamed:@"18"],
                                                  [UIImage imageNamed:@"19"],
                                                  [UIImage imageNamed:@"20"],
                                                  [UIImage imageNamed:@"21"],
                                                  [UIImage imageNamed:@"22"],nil];
    gifImageView.animationImages = gifArray; //动画图片数组
    gifImageView.animationDuration = 5; //执行一次完整动画所需的时长
    gifImageView.animationRepeatCount = 1;  //动画重复次数
    [gifImageView startAnimating];
    [self.view addSubview:gifImageView];
    [gifImageView release];

注意:这个方法,如果gif动画每桢间的时间间隔不同,不能达到此效果。

ios中播放gif动画相关推荐

  1. 在Powerbuilder中播放Flash动画

    在Powerbuilder中播放Flash动画. w_flash.ole_1.object.movie=gs_apppath+"\pic1\泵.swf" w_flash.ole_1 ...

  2. android如何播放动画,Android中播放Gif动画取巧的办法

    由于做的项目,要有个动画的等待效果,第一时间想到的就是Gif(懒,省事),但是试了好多据说能播放Gif的控件,也写过,但是放到魅族手机上就是不能播放,所有就想了个招,既然Gif能在浏览器上播放,那an ...

  3. DataGridView单元格中播放gif动画的变通方法(转自:博客园蜡人张)

    WinForm应用程序中如何在DataGridView的某一列中播放gif动画,单纯添加一个DataGridViewImageColumn列是不行的,显示出来的图片只是gif动画的一帧,是静止的.在不 ...

  4. android中播放gif动画之二

    2019独角兽企业重金招聘Python工程师标准>>> 在上一篇,是使用代码通过构造方法传入要播放的gif动画的id进行获取的.本文进一步改造,让GifView和ImageView一 ...

  5. WPF中播放Flash动画

    WPF本身不直接支持播放Flash动画,需要做点"设计",下面是示例(嵌入WPF窗口播放). 1.首先在VS2010中建立项目.打开VS2010后选择"文件"- ...

  6. android中播放gif动画之三

    之前写了些简单的类基本可以实现gif的播放,主要是使用的Movie类来解决的.今天无意中在网上看到有个开源小项目GifView可以用来解析播放GIF,名字居然跟我写的控件一样,呵呵,看了源码,实现方式 ...

  7. android中播放gif动画之一

    在android中默认的控件是不支持gif格式的图片的,只能显示图片的第一帧,这里需要借助于Movie类.将图片进行解析播放.下面使用一种纯代码的自定义控件,这种方式使用方便,但不支持像ImageVi ...

  8. iOS中实现弹簧动画

    我们都知道iOS9 CASpringAnimation 弹簧动画,操作简单,容易实现,目前使用也比较广泛,下面我给大家介绍一种pop的弹簧效果,跟CASpringAnimation 弹簧动画 很相似 ...

  9. unity中播放spine动画突然删掉报错

    这个脚本增加 protected void ApplyAnimation () { 增加为null的判断if (skeleton!=null){skeleton.UpdateWorldTransfor ...

最新文章

  1. C# 最快的逐一打印斐波那契结果数列的算法
  2. 强化学习大规模应用还远吗?Youtube推荐已强势上线
  3. 实践人生 —— 一个普通IT人的十年回顾(下)
  4. 运行 vue 报node错
  5. 用户id生成规则_阿里/网易/美团/58用户画像中的ID体系建设
  6. Qt, Python(一)
  7. 前端知识点梳理(一)
  8. HDU1269 迷宫城堡(模板题)
  9. 杨辉三角变形(高效解析)
  10. enum 有什么好处_林卡尔|先买地板后装修的三大好处
  11. centos7恢复mysql数据库_MySQL数据库升级迁移填坑记
  12. Java并发编程之线程安全
  13. Java中堆、栈和常量池的区别
  14. 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_一起学习西瓜书2
  15. 网络嗅探器(影音神探) v4.63 绿色正式版http://down.hotlife.cn/html/download/2006/6/05/1149478572.shtml
  16. 中国农业大学专业学位计算机,中国农业大学(专业学位)计算机技术考研难吗
  17. 若依开发文档手册[持续更新:拥抱初次使用若依的开发者]
  18. wps和office有什么区别?
  19. 所谓的Crack大揭秘
  20. proteus中示波器的各刻度的含义

热门文章

  1. java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入
  2. 七十四、滑动窗口最值问题
  3. 为了OFFER系列 | 牛客网美团点评数据分析刷题
  4. NeurIPS 2020 | 一种基于动作采样的简单高效的正则化强化学习方法
  5. AI到底有多吃香?推荐一个斯坦福、CMU、清北学生都在上的AI课
  6. 免费注册丨全国社会媒体处理大会(SMP 2020)召开,98场报告日程全公开
  7. 从变分编码、信息瓶颈到正态分布:论遗忘的重要性
  8. 机器学习模型,能分清川菜和湘菜吗?
  9. 来自闪闪宝石的光芒 - “宝石迷阵” x 信息检索 | 论文访谈间 #20
  10. java第六章工具包6.2.Collection Streams 2020.4.7