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. python 生成器与迭代器
  2. 小程序分享到朋友圈功能_微信小程序开放分享到朋友圈功能
  3. [转] ubuntu 无线网络 配置 virtualbox
  4. java stw_JVM STW里的no vm operation是怎么发生的
  5. Bash Cookbook 学习笔记 【中级】
  6. GCD HDU - 1695
  7. mysql exporter_mysql exporter
  8. python3怎么用_当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)...
  9. Bitmap对图像的处理
  10. 遇到一个php的错误,php初学者常见的几个错误及解决方法
  11. unix下ODBC连接MySQL编程_通过unixODBC访问PostgreSQL数据库
  12. 六自由度机械臂参数化设计
  13. nmds与mds的区别_PCA、PCoA、NMDS、CCA、RDA傻傻分不清楚
  14. 实践篇(一):数据准备和本体建模
  15. python处理netcdf_Python处理netCDF文件
  16. 【feature_column处理】- numeric_column数值列
  17. 分布式数据库发展历程SequoiaDB 简介
  18. 通过路由器绕过DDoS防御攻击web服务器总结
  19. 【系统故障】电脑有些网站上不去,比如爱奇艺、腾讯的网站。为什么?怎么解决?
  20. node python做游戏服务哪个适合做服务端_当前的几种开源游戏服务端介绍

热门文章

  1. python复制多个文件_python 之 复制多个模板文件
  2. 三十三、Java集合中的LinkedList
  3. 基于聚类的“图像分割”
  4. html不读取缓存,如何让前端浏览器不进行缓存
  5. Python工程师学习笔记
  6. 排序学习(LTR)经典算法:RankNet、LambdaRank和LambdaMart
  7. 多源迁移学习相关研究回顾
  8. 三味Capsule:矩阵Capsule与EM路由
  9. AIProCon在线大会笔记之阿里达摩院司罗:为商业搭建语言桥梁
  10. HDU1247 字典树 Hat’s Words(Tire Tree)