ios发的gif图不动_怎么暂停gif

ios发的gif图不动_怎么暂停gif其实网上GitHub有很多第三方的,但是用起来比较麻烦,这里介绍最简单的一种方式,自己就可以实现,(点击按钮开始播放动态图)1,集成SDWebImage之后,引入头文件#import"U


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

 

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

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

   

 self.loadingImageView= [[UIImageView alloc]init];
    UIButton* btn=[[UIButton alloc]initWithFrame:CGRectMake(0, 100, 50, 20)];
    btn.backgroundColor=[UIColor redColor];
    [self.view addSubview:btn];
    ;

  

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

- (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.loadingImageView];
    
}

 

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

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

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

 

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

//暂停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;
}

  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167749.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Shift 后门 简单学习

    Shift 后门 简单学习https://www.cnblogs.com/BOHB-yunying/p/11695140.html过程参考上文链接提出问题:整个过程并不复杂,但要实现攻击的前提条件,是已经打入目标主机,将C:\windows\system32\sethc.exe替换成C:\windows\system32\cmd.exe,所以这一步到底要如何做到?明白shift后门是如何产生的就是windows系统自带的5次shift键强制打开C:\windows\system32\sethc.exe,为了..

    2022年9月18日
  • C# UDP编程「建议收藏」

    C# UDP编程「建议收藏」引用:前一个专题简单介绍了TCP编程的一些知识,UDP与TCP地位相当的另一个传输层协议,它也是当下流行的很多主流网络应用(例如QQ、MSN和Skype等一些即时通信软件传输层都是应用UDP协议的)底层的传输基础,所以在本专题中就简单介绍下UDP的工作原理和UDP编程的只是,希望可以对刚接触网络编程的朋友起到入门的作用。一、UDP介绍UDP和TCP都是构建在IP层之上传输层

    2022年9月3日
  • webpack es6转es5_nodejs支持es6吗

    webpack es6转es5_nodejs支持es6吗万恶的IE遗臭万年仍然需要填坑ie标准对html/css甚至js的规范简直相差甚远,所以,一般要解决的兼容问题很大一部分是为了解决ie的不兼容,虽然目前流行的ES6语法及规范将IE的考虑抛弃掉,默认放弃对IE的治疗,但是IE的兼容仍然是个问题!即使IE的使用率已经不到1%的市场占比。我们使用着舒服的ES6规范但是为IE又很头疼怎么办呢?Webpack开发了非常厉害的打包转换功能:转ES5!…

    2022年9月25日
  • 等我干IT发财了,就和你离婚,IT圈子的都收藏转发了

    01 “等我干IT发财了,就和你离婚” 他淡淡地说 听完后,她心里暖暖的, 她想,没有比这更天长地久。 海枯石烂的承诺了。 (因为深知永远也不会发财) ——2017年度最佳微小说奖…

    2021年6月21日
  • 查看linux执行的命令记录_shell 调用history

    查看linux执行的命令记录_shell 调用history前言我们每次敲打linux命令的时候,有时候想用之前用过的命令,一般情况下,我们都会按↑↓箭头来寻找历史的命令记录,那如果我想用1天前执行的某条命令,难道还要按↑100次?显示这样是不现实的,我们可

    2022年7月31日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号