iOS 使用 FLAnimatedImageView 播放GIF,并控制播放一次

这篇具有很好参考价值的文章主要介绍了iOS 使用 FLAnimatedImageView 播放GIF,并控制播放一次。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有时候会播放本地gif 图片,并只播放一次, 我们这里使用FLAnimationImageView 实现

修改FLAnimationImageView

添加forcePause 属性

@interface FLAnimatedImageView : UIImageView

@property (nonatomic, assign) BOOL forcePaused;

@end

计时器方法

            self.displayLink = [CADisplayLink displayLinkWithTarget:weakProxy selector:@selector(displayDidRefresh:)];

修改计时器方法
添加下面这句

  if (self.forcePaused) {
        self.image = self.currentFrame;
        return;
    }

设置结束回调文章来源地址https://www.toymoban.com/news/detail-691131.html

- (FLAnimatedImageView *)imgView
{
    if (!_imgView) {
        _imgView = [[FLAnimatedImageView alloc] init];
        __weak  FLAnimatedImageView *weakImgView = _imgView;
        _imgView.loopCompletionBlock = ^(NSUInteger loopCountRemaining) {
            weakImgView.forcePaused = YES;
            [weakImgView stopAnimating];
        };
    }
    return _imgView;
}
- (void)displayDidRefresh:(CADisplayLink *)displayLink
{
    // If for some reason a wild call makes it through when we shouldn't be animating, bail.
    // Early return!
    if (!self.shouldAnimate) {
        FLLog(FLLogLevelWarn, @"Trying to animate image when we shouldn't: %@", self);
        return;
    }
    
    if (self.forcePaused) {
        self.image = self.currentFrame;
        return;
    }
   。。。。

展示gif资源

        NSString *path = [[NSBundle mainBundle] pathForResource:@"animation_24hlive" ofType:@"gif"];
        NSData *gifData = [NSData dataWithContentsOfFile:path];
        FLAnimatedImage *image = [FLAnimatedImage animatedImageWithGIFData:gifData];
        _animationView.animatedImage = image;

到了这里,关于iOS 使用 FLAnimatedImageView 播放GIF,并控制播放一次的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32中使用宏定义来控制IO口

    目录 一、前言 二、前置知识 1.带参宏定义 2.三目运算符 3.需要用到的寄存器 ①BSRR寄存器 ②BRR寄存器 ③IDR寄存器 三、有以上基础或者想直接用的直接看这里 1.使用宏定义来控制IO口 四、代码解释 1.LED(x) 2.LED_RUN 五、结语 突然想用宏定义来控制IO口,但是发现网上并没有比较

    2024年01月24日
    浏览(26)
  • [RK3399][Uboot]使用内存映射方式直接控制IO

    第一章 [RK3399][Uboot]使用内存映射方式直接控制IO 嵌入式工作这么多年,经常会用到GPIO,通常是使用内核的API或Sysfs来操作GPIO,直接操作GPIO寄存器的情况或GPIO内存映射的情况比较少,本文就针对RK3399平台的GPIO,以操作GPIO地址映射的方式来控制一下GPIO。会涉及到GPIO的IOMUX,

    2023年04月12日
    浏览(24)
  • iOS播放/渲染/解析MIDI

    MIDI:乐器数字接口, Musical Instrument Digital Interface。 MIDI 是计算机能理解的乐谱,计算机和电子乐器都可以处理的乐器格式。 MIDI 不是音频信号,不包含 pcm buffer。 通过音序器 sequencer,结合音频数据 / 乐器 ,播放 MIDI Event 数据 ( 通过音色库 SoundFont,播放乐器的声音。iOS上一

    2023年04月24日
    浏览(26)
  • iOS】AVPlayer 播放音视频

    iOS开发中不可避免地会遇到音视频播放方面的需求。 常用的音频播放器有 AVAudioPlayer、AVPlayer 等。不同的是,AVAudioPlayer 只支持本地音频的播放,而 AVPlayer 既支持本地音频播放,也支持网络音频播放。 常用的视频播放器有 MPMoviePlayerController、AVPlayer 等。不同的是,MPMoviePlay

    2024年02月14日
    浏览(36)
  • iOS播放与编辑HDR视频

    在iPhone12发布后,支持使用Dolby Vision来录制HDR视频。至此,升级到iOS14.1系统后,已经支持录制、播放、编辑和导出HDR视频。接下来,让我们一起探索HDR视频的各种操作。 1、Profile与Level HDR视频中,Dolby Vision的Profile档次是8,同时兼容HLG格式。关于Dolby Vision的完整档次如下表所

    2024年02月04日
    浏览(21)
  • Java 3种IO模型,一次搞懂

    大家好,我是老三,上一节我们讨论了Linux的五种IO模型,接下来,我们从Java语言层面,来看看对IO的实现。 在Java中,一共有三种IO模型,分别是 阻塞IO(BIO) 、 非阻塞IO(NIO) 和 异步IO(AIO) 。 Java BIO 就是Java的传统IO模型,对应了操作系统IO模型里的阻塞IO。 Java BIO 相关的实现都

    2024年02月05日
    浏览(32)
  • H5 在ios上自动播放视频

    前言 最近的H5项目中有个开场动画使用了序列帧,但是因为原视频长达15秒,导出的序列帧很大,在loading阶段,用户等待时间过长,所以有这样的方案,在IOS中使用视频来代替序列帧,在安卓中由于不能自动播放视频,所以保持序列帧。 实现 Video 模板: 重要的是怎么触发自

    2024年02月12日
    浏览(26)
  • iOS视频播放器之ZFPlayer剖析

    本文主要针对ZFPlayer的功能实现来剖析,以及总结一下大家遇到的问题和解决方案 首先ZFPlayer现在拥有的功能: 支持横、竖屏切换,在全屏播放模式下还可以锁定屏幕方向 支持本地视频、网络视频播放 支持在TableviewCell播放视频 左侧1/2位置上下滑动调节屏幕亮度(模拟器调不

    2024年02月12日
    浏览(32)
  • 记一次iOS微信恢复聊天记录的尝试

    最近手机坏了,为了到天才吧维修手机,为手机做了一个爱思助手的全备份。结果手机修好之后爱思助手无法恢复备份到手机。之前从来没有想到过iOS备份会失效,所以没有对微信聊天记录做单独的备份。尝试了2次无法恢复,确认不是偶然无法恢复,于是我尝试了多种办法,

    2024年02月10日
    浏览(26)
  • 探索iOS自定义ijkplayer画中画播放

    iOS提供AVPictureInPictureController用于画中画播放控制,但是只能绑定AVPlayer使用,对于开发者来说挺头痛的。在iOS 15.0后呼之欲出,支持SampleBufferDisplayLayer自定义数据源显示图层,意味着我们可以自定义第三方播放器实现画中画。以ijkplayer为例,让我们一起探索如何支持画中画播

    2024年02月12日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包