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动画 的相关文章

  • 带有 Core Data 对象的动态 UITableView 高度

    过去几天我一直在试图解决一个谜团 即为什么我的批处理大小为 20 的 NSFetchedResultsController 总是在获取完成后立即错误 即加载到内存中 我的所有对象 从而导致请求需要约 20 秒 事实证明 这是因为在我的 he
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项
  • 如何在 Apple Watch Extension/App 和 iOS App 之间建立通信通道

    我正在探索 WatchKit SDK 当我有 WatchKit 应用程序时 是否可以在 WatchKit 应用程序上从 iPhone 应用程序设置值 例如文本 设置 我可以从 iPhone 应用程序调用 WatchKit 应用程序扩展中的函
  • 由于语言错误,Itunes Connect 无法提交

    Thats all it shows https i stack imgur com 0aZm8 png 我不确定它没有告诉我出了什么问题 it shows its linked to the language https i stack
  • SQL查询json字典数据

    我的表中的 CLOB 字段包含 JSON 如下所示 a value1 b value2 c value3 我正在尝试编写一个 SQL 查询来返回一个包含键和值字段的表 如下所示 key value a value1 b value2 c v
  • iOS 11 安全区域布局指南向后兼容性

    启用安全区域布局指南是否与 iOS 11 以下版本兼容 我设法使用新的安全区域布局指南并保持与 iOS 9 和 iOS 10 的向后兼容性 编辑 正如 NickEntin 的评论所指出的 此实现将假定存在状态栏 但在 iPhone X 的横
  • iOS 8 中的 UISplitViewController 状态恢复

    在 iOS 8 上 UISplitViewController 似乎可以保存和恢复其子视图的状态 例如 主视图是否隐藏 这是不可取的 因为我的应用程序应该始终以横向方式显示主视图 并始终以纵向方式隐藏它 如果用户以横向模式关闭应用程序 保存
  • 如何请求用户开启定位服务

    我需要我的应用程序来访问用户的当前位置 它在应用程序开始时检查用户是否已设置 如果没有 我需要应用程序显示提示以使其使用位置服务 就像警报视图一样 点击按钮 它应该会带您进入 iPhone 上的位置服务屏幕 您可以通过以下代码检查 loca
  • iOS UIButton 带有圆角和背景 bug

    我发现圆形 UIButton 存在一个奇怪的问题 这是我创建此按钮的代码块 let roundedButton UIButton type System roundedButton frame CGRectMake 100 100 100
  • 无法使用 Xamarin 和 WCF 访问 Web 服务

    我想使用 Xamarin 和 WCF 来使用公共 Web 服务 对于这个演示 我将使用Xamarin iOS 这是我试图使用的 公共 网络服务 http www webservicex net globalweather asmx WSDL
  • PrepareForSegue之谜

    我在两个不同的 VC 中有一个prepareForSegue 方法 一个使用一个if声明 而另一个旨在使用switch 除了名称之外 代码几乎相同 这个效果很好 void prepareForSegue UIStoryboardSegue
  • 应用程序传输安全已禁用,但仍然出现 SSL 握手错误

    我在通过 HTTPS SSL 连接到 API 时遇到问题 我已经使用下面的字典完全禁用了应用程序传输安全性 ATS 尽管 SSL 证书通过了 NSCURL 的所有测试
  • 如何将音乐从我的应用程序切换到 iPod

    我在用MusicPlayerController我的应用程序中的对象来播放音乐 我知道当 iPhone ipod 应用程序终止时 可以继续播放我的应用程序音乐 我该怎么做 这涉及到一些事情 您必须在两种音乐播放器之间进行选择 应用程序音乐播
  • iOS WKWebView.scrollView委托导致BAD_ACCESS

    我的 viewController 有一个 UIView 属性 其中包含一个 WKWebView 我将 WKWebView rollView 委托设置为我的 viewController 它是我的 UIView 子类的公共函数 并在我的 v
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 使用 json_encode() 函数在 PHP 数组中生成 JSON 键值对

    我正在尝试以特定语法获取 JSON 输出 这是我的代码 ss array 1 jpg 2 jpg dates array eu gt 59 99 us gt 39 99 array1 array name gt game1 publishe
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s
  • JSON 到 hashmap (杰克逊)

    我想将 JSON 转换为 HashMapJackson http jackson codehaus org 这是我的 JSON String json Opleidingen name Bijz trajecten zorg en welz
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we

随机推荐

  • 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 安卓那边也比较累况且 俩平台最后展示的可能有些细节还不一样