ios动态视频_手机怎么暂停gif

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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/166977.html原文链接:https://javaforall.net

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


相关推荐

  • 《如何让Linux安全起来》第一篇–设置普通用户登陆、禁止超级用户登陆

    《如何让Linux安全起来》第一篇–设置普通用户登陆、禁止超级用户登陆

    2021年6月4日
    155
  • JS动画卡顿分析_学会java就能自己设计软件吗

    JS动画卡顿分析_学会java就能自己设计软件吗文章目录动画卡顿分析及解决方法一、卡顿原因分析二、优化的一些方法动画卡顿分析及解决方法一、卡顿原因分析我们所使用的设备大多数的刷新频率都是60HZ,也就是每秒钟会有60个画面来组成一个完整的动画来进行展示。这就要求我们的浏览器对每一帧动画的渲染都在16ms内完成(1秒等于1000ms),一旦渲染时间超过了这个时间段,用户在观看时就会感觉到卡顿。通常,一般人可以分辨的频率也在60HZ左右,所以经常会有人提起打游戏时卡顿,也就是游戏掉帧。二、优化的一些方法1.JavaScript的相关优化:优化Jav

    2022年10月11日
    9
  • SAP Web IDE本地环境搭建「建议收藏」

    SAP Web IDE本地环境搭建「建议收藏」SAPWebIDE本地环境搭建1、JDK的安装及配置环境变量可通过官网自行下载JDK:JavaDownloads|Oracle直接傻瓜式安装至默认路径“C:\ProgramFiles\Java\jdk-17.0.2”,然后配置环境变量“JAVA_HOME”、“CLASSPATH”和“PATH”。JAVA_HOME:C:\ProgramFiles\Java\jdk-17.0.2CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\

    2022年10月18日
    9
  • 理解目标检测中的mAP与F1 Score

    理解目标检测中的mAP与F1 Score文章目录总述IoUTP、TN、FP、FNPrecisionRecallF1-ScoremAPmAP计算过程:总述要理解mAP与F1Score需要一些前置条件,比如:IoU、FP、TP、FN、TN、AP等IoU衡量监测框和标签框的重合程度。一张图就能解释。TP、TN、FP、FNTP,即TruePositives,表示样本被分为正样本且分配正确。TN,即TrueNegatives,表示样本被分为样本且分配正确。FP,即FalsePositives,表示样本被分为正样本但分配错

    2022年10月14日
    4
  • UAT 环境_系统uac

    UAT 环境_系统uacUserAcceptEnvironment用户仿真测试环境转载于:https://www.cnblogs.com/qinqiu/p/5981222.html

    2022年9月30日
    3
  • java 单例模式实现的5种方式[通俗易懂]

    java 单例模式实现的5种方式[通俗易懂]第一种:饿汉式/***CreatedwithIntelliJIDEA.**@author:宸濯*Date:2021/08/188:21*Description:单例模式的设计(饿汉式)*1.构造方法私有化*2.在静态语句块实例化*3.提供调用实例对象的方法*4.空间换时间,不管有没有调用方法,实例都创建了*Version:V1.0*/publicclassSingletonOne{privatestatic

    2022年8月11日
    9

发表回复

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

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