Lottie 是个非常出名的动画框架,官网:https://airbnb.design/lottie/
UI设计者,做好动画效果后,导出json文件,以及相关的资源文件。用这个框架已经很久了, 之所以现在推荐主要是之前觉得框架很出名,没必要推荐了。由于我的项目最低兼容iOS8,所以一直是OC版本的,最近导入了一个动画效果,发现渐变色效果显示不出来,仔细看了版本记录,发现最新的版本最低兼容iOS9,而且是swift版的,我这边项目是OC的,为了能够使用写了swift类,包装了一下, 方便使用,没什么技术含量,就是不想重复劳动,我把代码封装了一下。源码内容:

import Foundation
import Lottie@objcMembers public class JKLottieManager: NSObject {public class func initAnimationView(_ filePath:String,_ frame:CGRect) -> AnimationView{let animationView:AnimationView = AnimationView.init(filePath: filePath)animationView.frame = framereturn animationView}public class func animationViewNamed(_ name:String, _ frame:CGRect) -> AnimationView{let animationView:AnimationView = AnimationView.init(name: name)animationView.frame = framereturn animationView}public class func configLoopModel(_ loopModel:NSInteger, _ animationView:AnimationView ,_ count:CGFloat) -> Void {if loopModel == 0 {animationView.loopMode = .playOnce}else if loopModel == 1 {animationView.loopMode = .loop}else if loopModel == 2 {animationView.loopMode = .autoReverse}else if loopModel == 3 {animationView.loopMode = .repeat(Float(count))}else if loopModel == 4 {animationView.loopMode = .repeatBackwards(Float(count))}}public class func play(_ animationView:AnimationView,_ complete:((_ finished:Bool)->Void)?)->Void{animationView.play { (_ finished:Bool) inif let complete = complete{complete(finished)}}}public class func play(_ animationView:AnimationView, _ fromProgress:CGFloat, _ toProgress:CGFloat, _ complete:((_ finished:Bool)->Void)?) ->Void{animationView.play(fromProgress: fromProgress, toProgress: toProgress, loopMode: animationView.loopMode) { (_ finished:Bool) inif let complete = complete{complete(finished)}}}public class func play(_ animationView:AnimationView) ->Void{animationView.play()}public class func pause(_ animationView:AnimationView) ->Void{animationView.pause()}public class func stop(_ animationView:AnimationView) ->Void{animationView.stop()}public class func changeRate(_ animationView:AnimationView, _ rate:CGFloat) ->Void{animationView.animationSpeed = rate}
}

源码编译为OC内容如下:

@class AnimationView;SWIFT_CLASS("_TtC16JKLottieMananger15JKLottieManager")
@interface JKLottieManager : NSObject
+ (AnimationView * _Nonnull)initAnimationView:(NSString * _Nonnull)filePath :(CGRect)frame SWIFT_METHOD_FAMILY(none) SWIFT_WARN_UNUSED_RESULT;
+ (AnimationView * _Nonnull)animationViewNamed:(NSString * _Nonnull)name :(CGRect)frame SWIFT_WARN_UNUSED_RESULT;
+ (void)configLoopModel:(NSInteger)loopModel :(AnimationView * _Nonnull)animationView :(CGFloat)count;
+ (void)play:(AnimationView * _Nonnull)animationView :(void (^ _Nullable)(BOOL))complete;
+ (void)play:(AnimationView * _Nonnull)animationView :(CGFloat)fromProgress :(CGFloat)toProgress :(void (^ _Nullable)(BOOL))complete;
+ (void)play:(AnimationView * _Nonnull)animationView;
+ (void)pause:(AnimationView * _Nonnull)animationView;
+ (void)stop:(AnimationView * _Nonnull)animationView;
+ (void)changeRate:(AnimationView * _Nonnull)animationView :(CGFloat)rate;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

源码地址:https://github.com/xindizhiyin2014/JKLottieMananger
可以用pod集成 pod 'JKLottieMananger'

更多优质文章,可以微信扫码关注:

推荐一个动画框架Lottie相关推荐

  1. bootstrap怎么在一个页面渲染多个表格_推荐一个前端框架

    拼图Pintuer-跨屏响应式布局前端开发CSS框架 几个推荐理由: 国产: 跨屏响应式,这是最基本的: 使用简单,只需引入jquery.js.pinter.js.pinter.css三个文件即可: ...

  2. 给大家推荐一个 vue-element-admin 框架

    框架介绍 vue-admin-beautiful 始终基于最新依赖最新架构开发,同时保证依赖稳定,支持路由三级路由以上缓存,支持 25 种布局(画廊.纵向.横向.综合.常规*5 种主题默认.海洋之心. ...

  3. Lottie动画框架入门及源码简析

    现在越来越多的APP中添加动画来提升用户体验,下面简单介绍下Airbnb开源的动画框架Lottie的使用 一.基本使用 首先添加依赖 compile 'com.airbnb.android:lotti ...

  4. Facebok的动画框架pop

    来源:http://www.jianshu.com/p/1172578c96e1 该开源框架比苹果的Core Animation功能更强大,我强烈推荐该动画框架. Facebook Paper 官网: ...

  5. YY-SVGA动画框架

    写在个人微信订阅号:https://mp.weixin.qq.com/s/mBxwTQjRdQaRqR_43aMhYg YY最近开源了一个动画框架,可以直接把设计师做好的动画源文件转换成特定格式,并且 ...

  6. Fish-Lottie:纯Dart如何实现一个高性能动画框架?

    背景 Lottie是一个由Airbnb开源的横跨Android,iOS,Web等多端的一个动画方案,它以JSON的方式解决了开发者对复杂动画实现的开发成本问题. 众所周知,闲鱼团队是比较早在客户端侧选 ...

  7. FLutter 官方推荐的二个动画插件lottie和Rive(flare)动画

    FLutter 官方推荐的二个动画插件lottie和rive(flare)动画 lottie 动画:Lottie是一个Android和iOS的移动库,它解析Adobe After Effects动画, ...

  8. 10个顶级的CSS和Javascript动画框架推荐

    在网站中嵌入动画已成为近年来的一个设计趋势,许多公司都已开始转向并拥抱HTML5.CSS3和JavaScript这个技术"三人组".尽管这些技术还不能制作一些非常复杂的动画(像fl ...

  9. 希望大家推荐一个javaweb开源框架

    为什么80%的码农都做不了架构师?>>>    希望大家推荐一个javaweb开源框架 最近想深入学习javaweb 求推荐 转载于:https://my.oschina.net/z ...

最新文章

  1. 如何用 Python 将 Excel 表格转成可视化图形?| 原力计划
  2. mysql 开仓函数_MySQL函数大全 及用法示例
  3. Jupidator 0.8.0 发布,Java 应用自动更新框架
  4. POJ1741 Tree 树中点对统计【树分治入门】
  5. 区块链系列教程之:比特币中的共识
  6. python字符串isalnum()函数
  7. java 枚举不能继承_Java中的枚举类为何不能有public构造器
  8. KafkStream架构
  9. axure如何导出原件_Axure 教程:轻松导出图标字体所有图标
  10. JetbrainsCrack-3.1-release-enc.jar 下载
  11. 深入理解JVM虚拟机读书笔记【第七章】虚拟机类加载机制
  12. [原创]编程实现UCDOS字库的显示和打印
  13. 分享经济的巨大潜力,加速改变新生活方式
  14. Mac 连接不上Mysql数据库的解决方案
  15. 基于WPS开放平台 WPS文件转PDF开发指南
  16. dell10代cpu装linux,戴尔10代CPU完美装Win7|DELL 10代CPU装Win7教程
  17. 案例三:淘宝用户行为分析
  18. html源码里面写current,HTML Video currentTime用法及代码示例
  19. 关于原神抽奖概率的简要分析
  20. 召回率与精确率的理解

热门文章

  1. PostgreSQL隐藏列(兼容oracle)
  2. 老子是一个怎样的传奇!(转发)
  3. 多空博弈主力资金控盘强度指标公式 主/副图
  4. “算法即芯片”有点扯,互联网公司为何热衷造概念?
  5. 《TCP/IP详解》读书笔记(18章)-TCP连接的建立与中止
  6. 计算机进制转换专项训练,计算机进制转换练习题.doc
  7. mysql 截取第一个字符_MySQL 字符串截取SUBSTRING()函数
  8. TX2超详细,超实用刷机教程(亲测有效,所有步骤都是博主亲自实践过)
  9. 走进AI时代的文档识别技术 之文档重建
  10. 算法:字符串全部子序列、子串、全排列