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)
上一篇 2022年8月1日 下午10:36
下一篇 2022年8月1日 下午10:36


相关推荐

  • 机器学习之模型评估

    '没有测量,就没有科学'这是科学家门捷列夫的名言。在计算机科学特别是机器学习领域中,对模型的评估同样至关重要,只有选择与问题相匹配的评估方法,才能快速地发现模型选择或训练过程中出现的问

    2021年12月30日
    68
  • Spring @Aspect、@Before、@After 注解实现 AOP 切面功能

    Spring @Aspect、@Before、@After 注解实现 AOP 切面功能SpringAOP 注解概述 1 Spring 的 AOP 功能除了在配置文件中配置一大堆的配置 比如切入点 表达式 通知等等以外 使用注解的方式更为方便快捷 特别是 Springboot 出现以后 基本不再使用原先的 beans xml 等配置文件了 而都推荐注解编程 Aspect 切面声明 标注在类 接口 包括注解类型 或枚举上 Pointcut 切入点声明 即切入到哪些目标类的目标方法 value 属性指定切入点表达式 默认为 用于被通知注解引用

    2026年1月17日
    3
  • Netty框架学习之(一):Netty框架简介

    Netty框架学习之(一):Netty框架简介1.简介官方定义为:”Netty是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端”,按照惯例贴上一张HighLevel的架构图:纵观Java系的多种服务器/大数据框架,都离不开Netty做出的贡献,本文对Netty做一个简单的概述2.主要特性Netty有很多重要的特性,主要特性如下:-优雅的设计-统一…

    2025年7月15日
    7
  • java中的io流知识总结_java数据流

    java中的io流知识总结_java数据流无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。内容概要JavaIO流的设计不得不让人拍案叫绝,佩服设计者鬼斧天工的手法。如果你是Java初学者,我敢保证第一次接触Java的IO类,一定会”狂晕!”,倒不是因为它有多么难学而是太多,而且及其让人有种“不识庐山…

    2022年10月20日
    4
  • iOS超全开源框架、项目和学习资料汇总–数据库、缓存处理、图像浏览、摄像照相视频音频篇…

    iOS超全开源框架、项目和学习资料汇总–数据库、缓存处理、图像浏览、摄像照相视频音频篇…

    2022年3月1日
    71
  • 安捷伦频谱仪的使用方法图解_安捷伦E4402B频谱仪使用说明

    安捷伦频谱仪的使用方法图解_安捷伦E4402B频谱仪使用说明标签:安捷伦仪器使用说明安捷伦仪器使用说明本资料为安捷伦频谱仪器使用说明,资料用于学习交流不能以任何形式商用。文档内容节选AgilentE4402BESAESeriesSpectrumAnalyzer使用方法简介宁波之猫2009617…

    2022年8月11日
    8

发表回复

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

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