2022-10-28

作者: 蝉始鸣 | 来源:发表于2022-10-27 10:56 被阅读0次

OC调用 3.5.0 Swift版本 Lottie

//  LottieView.swift

//  Lottie-test

//

//  Created by Macmini on 2022/10/26.

//

因为Lottie 没有暴露方法属性给OC文件 所以需要我们自建Swift文件 集成Lottie供OC调用 

importUIKit

importLottie

// @objcMembers 暴露 所有方法 属性给OC文件

@objcMembers class LottieView: UIView {

    //加载 URL 地址

     func showAnimation(url:URL,completionBlock: LottieCompletionBlock? = nil) -> Void {

         let animation = LottieAnimationView.init(frame: self.bounds)

         animation.loopMode= .playOnce

         animation.contentMode = .scaleAspectFit

         self.addSubview(animation)

         LottieAnimation.loadedFrom(url: url , closure: { ani in

             animation.animation= ani

             animation.play(completion: { completionin

                 ifThread.isMainThread{

                     completionBlock!(completion)

                 }else{

                     DispatchQueue.main.async{

                         completionBlock!(completion)

                     }

                 }

                 self.removeFromSuperview()

             })

         },animationCache: LRUAnimationCache.sharedCache)

     }

 //    加载 本地JSON文件

     func show(name: String, completionBlock: LottieCompletionBlock? = nil) -> Void{

         let lota = LottieAnimationView.init(frame: self.bounds)

         lota.loopMode= .playOnce

         lota.contentMode = .scaleAspectFit

         self.addSubview(lota)

         let  animation =LottieAnimation.named(name,animationCache: LRUAnimationCache.sharedCache)

         lota.animation= animation

         lota.play{ completionin

             if Thread.isMainThread {

                 completionBlock!(completion)

             }else{

                 DispatchQueue.main.async{

                     completionBlock!(completion)

                 }

             }

             self.removeFromSuperview()

         }

     }

 //    加载文件路径

     func show(filePath:String, completionBlock: LottieCompletionBlock? = nil) -> Void {

         let lota = LottieAnimationView.init(frame: self.bounds)

         lota.loopMode= .playOnce

         lota.contentMode = .scaleAspectFit

         self.addSubview(lota)

         let  animation =LottieAnimation.filepath(filePath,animationCache: LRUAnimationCache.sharedCache)

         lota.animation= animation

         lota.play{ completionin

             if Thread.isMainThread {

                 completionBlock!(completion)

             }else{

                 DispatchQueue.main.async{

                     completionBlock!(completion)

                 }

             }

             self.removeFromSuperview()

         }

     }

}

以上为自建Swift文件内容 

OC调用

 LottieView * one = [[LottieView alloc]initWithFrame:CGRectMake(0,0,375,668)];

    [UIApplication.sharedApplication.keyWindow addSubview:one];

//            @"https://s3-lover-live.s3.ap-southeast-1.amazonaws.com/829e456bb72b8d09c7d1784d0edfe92f"

    if(sender.tag==1) {

        [one showAnimationWithUrl:[NSURL URLWithString:@"https://s3-lover-live.s3.ap-southeast-1.amazonaws.com/1c6592104bd4882793e54a9e53560f53"] completionBlock:^(BOOL completion) {

        }];

    }else //if (sender.tag == 2)

    {

        [one showWithName:@"data"completionBlock:^(BOOLcompletion) {


        }];

    }

相关文章

  • 什么才是校园枪击案的解药?

    什么才是美国校园枪击案的解药? 原创2022-10-28 21:23·思观堂[https://www.toutia...

  • 有点不乖

    2022-10-27 吃着早饭的十一:小时候在妈妈肚子里面的时候,妈妈好开心的。 2022-10-28 听爸妈说,...

  • 静默

    原创 木渔石 老石说话 2022-10-28 13:25 发表于甘肃 朝霞渲染满天红,草露晶莹佛秋风。 清晨走出楼...

  • 《金吾生<庄子解〉307.2022-10-28》

    《金吾生<庄子解〉307.2022-10-28》 今天是壬寅庚戌甲寅,十月初四,2022-10-28星期五。 【外...

  • 2022-10-28【日精进第40天】

    2022-10-28【日精进第40天】 姓名:李庆 单位:郑州鹿野苑餐饮管理有限公司(朵家甜品厨房) 每日定课(根...

  • 接地气 也要格局大

    幸福日志2022-10-28 周五 多云 宣传员培训,听安徽日报的主管讲课,就像这个主管写的新闻报道,“新闻就是要...

  • 2022-10-29

    日更第四天,趁着早赶紧上来打更。发现2022-10-28日的日更,有位姐姐给我点了个赞, 真是惭愧,随意写写,还有...

  • 遇事最有水平的八种处理方法(阅读分享)

    森昊电器 森昊电器 2022-10-28 13:58 发表于浙江 曾有人问:“如何判断一个人的真实水平?” 有个高...

  • 曾经的“二简字”

    我国曾推行比简体字更简单的“二简字”,可惜仅仅在在九年后就宣告失败了。 2022-10-28 11:50 我国曾推...

  • 231   “斜杠青年”老杨

    2022-10-28 周二 阴 他姓杨,名发德,1955年8月8日出生。 八月初八,谐音发发,每次听到大家调侃...

网友评论

    本文标题:2022-10-28

    本文链接:https://www.haomeiwen.com/subject/fvnxtdtx.html