iOS 上接入Lottie动画 接入Json动画

2023-05-16

iOS设备上的动画借助官方SDK:CoreAnimation那一套已经比较强大了,基本上的动效都能实现,就是1、开发这边比较累;2、安卓那边也比较累况且 俩平台最后展示的可能有些细节还不一样。

借助Gif文件、视频文件等方式也有几个弊端:1文件体积比较大。2都没有官方支持。第三方库都有的。好像安卓那边接Gif不方便。那怎么办?

早几年出了个动效引擎库Lottie,比较强大,好几个平台都能使用:web(h5)、iOS、Android上都有,接入简单,使用方便。吃入同一个json文件,展示相同的动画效果。满足需求。

今天尝试接入了一下,折腾了半天,终于搞定了。前提,我不太会用Pods,所有的东西感觉把配套的源码放在项目里才放心。我试了两种:一种使用Lottie源码,一种使用Lottie.framework都一样。

接下来说详细步骤:

1、下载源码:网址 https://github.com/airbnb

找到需要的版本,然后下载。

2、解压得到目录结构如下

3、尝试不同的方式:源码、库文件的方式集成。 

(1)源码方式

源码其实就放在“lottie-ios”里面了,可以尝试新建一个项目AnimationWithLottieSrc,然后把“lottie-ios”这个目录拷贝过去,然后添加到项目里。

然后目录结构基本就是如下了,配置好签名等就可以一键运行,看到效果了。

(2)库文件的方式

库文件也不用自己去鼓捣,它已经给配置好了,build一下,然后就能拿到库文件lottie.framework了。注意区分拿不同的版本Debug、Release版本。根据自己的需要拿,不过一般都用Release好了,又不需要调试,也不需要更改它的库源码。

Build之后,右键如下图,到目录里找到这文件,它就是库文件了。

拿到库文件后,新建一个AnimationWithLottieframework项目,然后把这个库文件拷贝过去,然后引入。一键运行。

好了,至此 iOS上集成Lottie,实现Json动效就完成了。我把两个工程放上来,直接拿走即可运行。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 上接入Lottie动画 接入Json动画 的相关文章

  • AWS SES模板html部分是多行

    我正在使用 AWS SES 按照文档发送电子邮件https docs aws amazon com ses latest DeveloperGuide send personalized email api html https docs
  • 检查定位服务是否开启

    我一直在对 CoreLocation 进行一些研究 最近 我遇到了一个在其他地方 但在 Objective C 和 iOS 8 中 已经讨论过的问题 我觉得问这个问题有点傻 但是如何在 iOS 9 上使用 swift 检查是否启用了位置服务
  • UICollectionView 自动滚动到 IndexPath 处的单元格

    在加载集合视图之前 用户设置集合视图数组中的图像数量 所有单元格都不适合屏幕 我有 30 个单元格 但屏幕上只有 6 个 问题 如何在加载 UICollectionView 时自动滚动到具有所需图像的单元格 新的 编辑过的答案 将其添加到v
  • ios 用户如何取消 Facebook 登录?

    当用户到达此屏幕时 无法取消 我能做些什么 为了首先获得这个视图 我正在运行 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys vid l
  • 将永久字符添加到 UITextField

    有没有办法将字母永久添加到 UITextField 中 用户无法删除它 我想添加一个字符 用户无法删除它 但他们仍然可以在之后添加字母 Cheers 附注这是适用于 iOS 的 A UITextField有一个名为 应该更改范围内的字符 的
  • 如何打开定位服务

    当有人第一次拒绝时 如何从实际应用程序重新打开定位服务 我可以选择关闭或打开它 您只能提示他们在屏幕上打开定位服务 如下所示 UIApplication sharedApplication openURL NSURL URLWithStri
  • 如何替换已弃用的方法dispatch_get_current_queue()? [复制]

    这个问题在这里已经有答案了 我正在 iOS 5 中使用 xmppframework 开发一个聊天应用程序 它工作得很好 但我将 Xcode 更新到 4 5 1 将 iOS 5 更新到 iOS 6 将 Mac OS 更新到 10 7 5 但由
  • Instagram 粉丝计数 - 使用 jQuery / json 和 PHP

    经过几个小时的工作和一些帮助萨希尔 米塔尔我们已经成功使用 jQuery json 和 PHP 检索 Instagram 关注者计数 这是我们设法整理的内容 希望对其他想要获取 Instagram 信息的人有所帮助 我们的 jQuery I
  • 模块未使用库演化支持进行编译;使用它意味着无法保证二进制兼容性

    最近我遇到了 SDK 的编译时警告 这是否意味着它不是使用目标设置 构建用于分发的库 构建的 你需要设置Build Libraries for Distribution在项目中Build Settings to No然后它就会消失
  • 在横向中自动调整 UITableCells 内容的大小

    在 UITableView 中 我通过 UILabels 将内容添加到单元格中 定义最佳尺寸 与单元格宽度允许的一样大 我注意到只有tableView contentSize width是可靠的 因为cell contentView bou
  • 如何在 iOS 9 上可靠地检测是否连接了外部键盘?

    在 iOS 9 之前 确定是否连接外部键盘的最可靠方法是监听UIKeyboardWillShowNotification并使文本字段成为第一响应者 如中所述这个问题 https stackoverflow com questions 289
  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用
  • 适用于 iPhone / iPad / iOS 的快速、精益 PDF 查看器 - 提示和提示?

    最近有很多关于绘制 PDF 的问题 是的 您可以使用UIWebView但这无法提供您所期望的优秀 PDF 查看器的性能和功能 您可以绘制PDF页面到 CALayer http www cocoabuilder com archive coc
  • 在 iOS 上将 NSString 转换为 NSDate 的正确方法?

    我一直在使用此方法将常规 NSString 对象转换为 NSDate 但尝试向 Apple 提交更新 但遭到拒绝 在 iOS 中还有什么其他方法可以做到这一点 NSString date str 2011 08 12T12 20 00Z N
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • 在 MySQL 中使用 COUNT 时如何返回 0 而不是 null

    我使用此查询返回存储在 sTable 中的歌曲列表以及存储在 sTable2 中的总项目数 SQL queries Get data to display sQuery SELECT SQL CALC FOUND ROWS str repl
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • Swift 中的 import 语句是否有相关成本?

    阅读字符串宣言 我看到一个段落 https github com apple swift blob master docs StringManifesto md batteries included关于避免Foundation不需要的时候导

随机推荐

  • Python -- 网络编程

    目录 1 网络通信的概念 2 IP地址 3 网络通信方式 3 1 直接通信 3 2 使用集线通信 3 3 通用交换机通信 3 4 使用路由器连接多个网络 3 5 复杂的通信过程 4 端口 4 1 端口号 4 2 知名端口号 4 3 动态端口
  • 一篇文章,详细教你怎么在Linux上编译安装MariaDB(10.6.4)

    快捷目录 MariaDBMariaDB简介MariaDB VS MySQL 教程说明编译说明安装依赖下载MariaDB源码Cmake编译初始化和配置1 设置用户2 初始化脚本3 设置参数4 注册服务和环境变量5 设置root用户注意 测试连
  • 【C++】面向对象高级编程(3):类与类之间的关系

    本文来自侯捷老师的课程和自己的理解形成的笔记 若有错误 xff0c 欢迎指出 C 43 43 类和类之间 xff0c 在侯捷老师的课程中 xff0c 一般被分为三种关系 复合关系 委托关系和继承关系 复合关系 xff1a 指类中包含另一些类
  • Linux远程图形化界面出错:MoTTY X11 proxy: Unsupported authorisation protocol

    远程使用图形化界面时出错 xff1a MoTTY X11 proxy Unsupported authorisation protocol 解决 xff1a cp root Xauthority home xxx Xauthority xx
  • (超详细)零基础如何学习操作系统---操作系统书籍推荐

    直接先给出路线书籍 编码 隐匿在计算机软硬件背后的语言 汇编语言 x86从实模式到保护模式 操作系统导论 操作系统真象还原 查漏补缺 1 编码 隐匿在计算机软硬件背后的语言 对于完全不懂计算机的朋友 xff0c 这本书可以让你对计算机有一个
  • 【LeetCode】《LeetCode 101》第七章:动态规划

    文章目录 7 1 算法解释7 2 基本动态规划 xff1a 一维70 爬楼梯 xff08 简单 xff09 198 打家劫舍 xff08 中等 xff09 413 等差数列划分 xff08 中等 xff09 7 3 基本动态规划 xff1a
  • CentOS使用Nginx反向代理Tomcat部署Java Web项目

    CentOS使用Nginx反向代理Tomcat部署Java Web项目 今天我舍友问我 xff1a CSDN是什么意思 xff1f 床上等你吗 文章目录 CentOS使用Nginx反向代理Tomcat部署Java Web项目一 安装Tomc
  • yield函数在Python中的使用方式探究

    Python之yield学习 Python之yield1 问题描述2 yield版解决方案3 yield与generator4 总结 Python之yield 1 问题描述 在之前的学习中 xff0c 对于返回需要进行迭代序列的函数 xff
  • eslint报错解决

    Unexpected control character s in regular expression x00 no control regex eslint disable next line no control regex 用这个
  • Mac中brew的安装和常用命令

    brew是MAC中的一个包管理工具 类似于Linux中的那些自动下载yum包 通过brew可以自动下载安装很多软件包在 https brew sh 中有它的具体内容 在页面里可以找到所有安装步骤和可安装的包 安装brew 终端输入以下命令行
  • 华为2288v5服务器安装Centos7系统

    1 安装准备 1 1 硬件 以虚拟光驱 虚拟软驱为例介绍操作系统的安装过程 xff0c 如果使用物理光驱 物理软驱则以实际的光盘 软盘代替 1 2 软件 xff08 1 xff09 准备好操作系统的 ISO 镜像包 xff08 2 xff0
  • 设置docker自启动

    1 设置docker自启动 sudo systemctl enable docker 2 查看docker中的镜像 sudo docker images 3 配置默认的镜像加速 sudo mkdir p etc docker sudo te
  • ESLint 报错:error Unreachable code no-unreachable

    大多出错的原因都与 return 有关 xff0c 可能是带有返回值的方法之中调用另一个方法的时候 把方法写在了 return 后面 代码的意思就是没有执行到这个方法 xff1b 还有可能就是在遍历判断中使用了 return xff0c 符
  • 程序员:每一份不忘初心的情怀, 都是对技术的追求

    1 真正的情怀 xff0c 是从不矫情 这几年 情怀 大约快成了贬义 创业讲情怀 xff0c 产品讲情怀 xff0c 好像没点情怀都不好意思出门见人 我们曾经充满热情 xff0c 是一位开源软件倡导者 xff0c 我们崇尚全栈工程师才有未来
  • ubuntu 如何用root身份进行登录

    公司有个小项目 需要用python调用 sh脚本来执行一些东西 执行脚本的时候需要输入密码 类似 sudo S paaswd 43 脚本 但是给客户部署的话 再让客户客户 保存密码到配置文件 就显得麻烦 就想到用root方式去登陆系统 结果
  • 创建Maven项目时候弹出setup maven plugin connection解决方案

    今天创建一个maven项目的时候弹出了setup maven plugin connection xff0c 然后有两个选择 xff0c 我们直接选择auto select继续下一步 xff0c 然后等待一下 xff0c 把此页面关掉 然后
  • 基于BERT的知识库问答系统(KBQA)

    基于BERT的知识库问答系统 xff08 KBQA xff09 简介 知识库问答系统主要要做的两点分别是识别问题中的实体和提取问题中我们需要从知识库中查找的属性 xff0c 针对这两个方面我采用了NLP预训练模型BERT分别训练了基于BER
  • libc6-dev : 依赖: libc6 (= 2.23-0ubuntu3) 但是 2.23-0ubuntu10 正要被安装

    无法安装libc6 dev 如果出现下面错误 xff1a 在装libc6 dev时下列的软件包有不能满足的依赖关系 xff1a libc6 dev 依赖 libc6 61 2 23 0ubuntu3 但是 2 23 0ubuntu10 正要
  • VScode使用sftp远程修改文件

    一 下载插件 二 创建任意一个文件夹 sftp插件是在文件夹下生效的 因为你要在文件夹下进行sftp的配置 以及打开远程文件 三 配置远程连接配置 快捷键 Ctrl 43 Shift 43 P 打开config span class tok
  • iOS 上接入Lottie动画 接入Json动画

    iOS设备上的动画借助官方SDK xff1a CoreAnimation那一套已经比较强大了 xff0c 基本上的动效都能实现 xff0c 就是1 开发这边比较累 xff1b 2 安卓那边也比较累况且 俩平台最后展示的可能有些细节还不一样