iOS播放Gif方案总结
2016-07-11 12:16
363 查看
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 4000 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.相关文章推荐
- iOS开发-- 常见坑(支付宝不跳转)
- iOS setDateFormat 显示格式详解 yyyy dd
- 高仿QQ顶部控件之IOS SegmentView
- iOS改变NavigationBar和TabBar相关颜色
- iOS-悬浮按钮
- IOS中导入OpenCV
- iOS开发之获取实时海拔高度
- NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
- IOS博客项目搭建-03-代码重构
- Ios 24小时制与12小时制
- iOS—最全的真机测试教程
- iOS Block 和 Delegate 的使用比较
- 在导航栏上添加搜索框的问题
- iOS: xcode打包上传iTunes失败,iTunes Store operation failed,this action can not complete .try again
- ios-IM
- iOS CoreTelephony 实现监听通话状态
- AFNetworking 源码解析之“AFURLSessionManager”
- iOS XMPP协议的服务端Tigase
- IOS 开发大牛首选之路
- iOS--检测野指针