技术好文:xcode动态图,ios实现动态图,iosgif,暂停和继续播放

简介: 技术好文:xcode动态图,ios实现动态图,iosgif,暂停和继续播放

"

其实网上GitHub有很多第三方的,但是用起来比较麻烦,这里介绍最简单的一种方式,自己就可以实现,(点击按钮开始播放动态图)

1,集成SDWebImage之后,引入头文件#import ""UIImage+GIF.h""

2.初始化按钮,(loadingImageView是定义的全局的UIImageView,自己定义下)

?12345self.loadingImageView= 【【UIImageView alloc】init】; UIButton* btn=【【UIButton alloc】initWithFrame:CGRectMake(0, 100, 50, 20)】; btn.backgroundColor=【UIColor redColor】; 【self.view addSubview:btn】; 【btn //代码效果参考:https://v.youku.com/v_show/id_XNjQwMDE4NjQwMA==.html

addTarget:self action:@selector(initLoadingImageView) forControlEvents:UIControlEventTouchUpInside】;

3.点击按钮就可以实现了,非常简单

?12345678910111213141516171819202122- (void)initLoadingImageView{ NSString name = @""图片的名字.gif""; NSString filePath = 【【NSBundle bundleWithPath:【【NSBundle mainBundle】 bundlePath】】 pathForResource:name ofType:nil】; NSData *imageData = 【NSData dataWithContentsOfFile:filePath】; if (!self.loadingImageView) { self.loadingImageView = 【【UIImageView alloc】init】; } self.loadingImageView.backgroundColor = 【UIColor clearColor】; self.loadingImageView.image = 【UIImage sd_animatedGIFWithData:imageData】; //这里可以修改要实现播放的gif的frame self.loadingImageView.frame = CGRectMake(0, 100, 200, 100); 【self.view addSubview:self.loadingImageView】; 【self.view bringSubviewToFront:self.//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDE5MTAyNA==.html

loadingImageView】; }

如果想实现gif图片的暂停和继续播放的功能加入以下两个方法就可以了

1.首先再viewDidLoad加入这个(player是CALayer类型的,定义为全局的)

?12// 设置imageView的layer player = self.loadingImageView.layer;

2.实现这两个方法,需要用哪个就点击哪个直接把player传过去就可以了

?12345678910111213141516171819//暂停gif的方法 -(void)pauseLayer:(CALayer)layer{ CFTimeInterval pausedTime = 【layer convertTime:CACurrentMediaTime() fromLayer:nil】; layer.speed = 0.0; layer.timeOffset = pausedTime;} //继续gif的方法-(void)resumeLayer:(CALayer)layer{ CFTimeInterval pausedTime = 【layer timeOffset】; layer.speed = 1.0; layer.timeOffset = 0.0; layer.beginTime = 0.0; CFTimeInterval timeSincePause = 【layer convertTime:CACurrentMediaTime() fromLayer:nil】 - pausedTime; layer.beginTime = timeSincePause;}


"
image.png
相关文章
|
1天前
|
存储
技术经验分享:iOS_MJRefrash的详解以及使用
技术经验分享:iOS_MJRefrash的详解以及使用
|
1天前
|
机器学习/深度学习 定位技术 开发工具
必知的技术知识:ios个推推送集成
必知的技术知识:ios个推推送集成
|
1月前
|
Android开发 iOS开发
ios后台播放声音的三种实现方式
ios后台播放声音的三种实现方式
41 1
|
14天前
|
安全 Android开发 iOS开发
Android vs iOS:移动操作系统的技术比较与未来发展
本文深入探讨了Android和iOS这两大主流移动操作系统的技术特点和差异,从架构设计、安全性、开发环境、用户体验等多个方面进行详细分析。通过对比两者在市场份额、生态系统建设以及未来发展方向上的表现,本文将为读者提供一个全面的视角,以便更好地理解这两种操作系统的当前地位和未来潜力。
|
28天前
|
机器学习/深度学习 传感器 vr&ar
探索安卓与iOS平台下的虚拟现实技术发展
随着移动设备的普及和技术的不断进步,安卓和iOS平台上的虚拟现实(VR)技术发展迅速。本文将探讨安卓与iOS平台下虚拟现实技术的最新进展,包括技术特点、应用场景以及未来发展趋势。
43 0
|
1月前
|
存储 定位技术 iOS开发
XCode8升级到Xcode9(操作系统为iOS11)后原来的工程中遇到的问题
XCode8升级到Xcode9(操作系统为iOS11)后原来的工程中遇到的问题
23 0
|
1月前
|
Linux 数据安全/隐私保护 iOS开发
Xcode8.1如何支持iOS8.0以下版本
Xcode8.1如何支持iOS8.0以下版本
22 0
|
1月前
|
jenkins Unix 持续交付
个人记录jenkins编译ios过程 xcode是9.4.1
个人记录jenkins编译ios过程 xcode是9.4.1
29 2
|
1月前
|
Linux 数据安全/隐私保护 iOS开发
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
|
10月前
|
iOS开发
iOS Xcode 意外退出 打不开工程
iOS Xcode 意外退出 打不开工程
126 0