iOS播放Gif方案总结

iOS播放Gif方案总结

在iOS开发中常用的Gif播放有三种:

  • 原生UIWebView播放
  • UIImageView逐帧播放
  • 第三方GifView

当然最好的还是原生UIWebView播放,后面两种播放方式原理相同。

1.原生UIWebView播放

代码如下:

NSString *path = [[NSBundle mainBundle] pathForResource:@"happy" ofType:@"gif"];
//将图片转为NSData
NSData *gifData = [NSData dataWithContentsOfFile:path];
//创建一个webView,添加到界面
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
[self.view addSubview:webView];
//自动调整尺寸
webView.scalesPageToFit = YES;
//禁止滚动
webView.scrollView.scrollEnabled = NO;
//设置透明效果
webView.backgroundColor = [UIColor clearColor];
webView.opaque = 0;
//加载数据
[webView loadData:gifData MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];

这种方式首次加载可能会有点慢,但是后面切换的时候就会特别的流畅,播放的时候也完全和设计的一样。

2.使用UIImageView逐帧播放

代码如下:

//创建UIImageView,添加到界面
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
[self.view addSubview:imageView];
//创建一个数组,数组中按顺序添加要播放的图片(图片为静态的图片)
NSMutableArray *imgArray = [NSMutableArray array];
for (int i=1; i<9; i++) {
    UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"clock%02d.png",i]];
    [imgArray addObject:image];
}
//把存有UIImage的数组赋给动画图片数组
imageView.animationImages = imgArray;
//设置执行一次完整动画的时长
imageView.animationDuration = 8*0.2;
//动画重复次数 (0为重复播放)
imageView.animationRepeatCount = 0;
//开始播放动画
[imageView startAnimating];
//停止播放动画  - (void)stopAnimating;
//判断是否正在执行动画  - (BOOL)isAnimating;

这种方式在加载速度上是最快的,但是要手动设定帧数,和频率。如果需要切换动画还会卡顿,推荐一个UIImageView只有一张Gif的时候采用该方式。

3.使用第三方框架GifView

具体请转移至GitHub GifView.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值