iOS 中 GIF 图片的显示方法

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动画每桢间的时间间隔不同,不能达到此效果。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值