ImageView加载gif图片

默认情况下,OC中的控件imageView不能加载gif图片,自己搜集到了3中方式,提供一个方便,推荐使用第一个方案,比较方便

1、github上面的一些第三方可以很好的解决,并且很好用,非常方便

a>具体步骤

1、将AnimatedGIFImageSerialization.h和AnimatedGIFImageSerialization.m导入项目

2、在AppDelegate.m中导入#import "AnimatedGIFImageSerialization.h"

3、在使用的地方直接用myImageView.image = [UIImage imageNamed:@"test.gif"]

b>这里是地址 https://github.com/shadow0603/AnimatedGIFImageSerialization

2、使用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];

3、将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"],
    gifImageView.animationImages = gifArray; //动画图片数组
    gifImageView.animationDuration = 5; //执行一次完整动画所需的时长
    gifImageView.animationRepeatCount = 1;  //动画重复次数
    [gifImageView startAnimating];
    [self.view addSubview:gifImageView];

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值