iOS版Lottie
在airbnb.io/lottie查看文档、常见问题、帮助、示例等更多内容
Lottie是一个跨平台库,适用于iOS、macOS、tvOS、visionOS、Android和Web,可以用最少的代码在实时环境中原生渲染基于矢量的动画和艺术作品。
Lottie加载并渲染以bodymovin JSON格式导出的动画和矢量图。Bodymovin JSON可以通过bodymovin从After Effects创建和导出,通过Lottie Sketch Export从Sketch导出,以及从Haiku导出。
设计师可以创建并发布精美的动画,而无需工程师费力地手动重建它们。由于动画以JSON为基础,它们的体积非常小,但可以非常复杂!动画可以播放、调整大小、循环、加速、减速、倒放,甚至可以交互式地拖动。Lottie还可以只播放或循环动画的一部分,可能性是无限的!甚至可以在运行时以各种方式更改动画!改变颜色、位置或任何可设置关键帧的值!
以下是Lottie强大功能的一小部分示例
安装Lottie
Lottie支持Swift Package Manager、CocoaPods和Carthage(同时支持动态和静态库)。
Github仓库
你可以克隆Lottie Github仓库并包含Lottie.xcodeproj
来构建动态或静态库。
Swift Package Manager
要使用Swift Package Manager安装Lottie,你可以按照Apple发布的教程使用Lottie仓库的URL和当前版本:
- 在Xcode中,选择"文件" → "添加包依赖项..."
- 输入 https://github.com/airbnb/lottie-spm.git
或者你可以在Package.swift
中添加以下依赖项:
.package(url: "https://github.com/airbnb/lottie-spm.git", from: "4.5.0")
当使用Swift Package Manager时,我们建议使用lottie-spm仓库而不是主lottie-ios仓库。lottie-ios的主Git仓库相当大(300多MB),而Swift Package Manager总是会下载完整的仓库及其所有Git历史。lottie-spm仓库要小得多(不到500kb),因此可以更快地下载。
lottie-spm仓库不会下载完整的Lottie Git历史并从源代码构建,而只包含指向最新lottie-ios发布版本中预编译XCFramework的指针(通常约8MB)。如果你更喜欢直接在项目中包含Lottie源代码,可以通过引用https://github.com/airbnb/lottie-ios.git
来直接依赖主lottie-ios仓库。
CocoaPods
将pod添加到你的Podfile中:
pod 'lottie-ios'
然后运行:
pod install
将cocoapod安装到项目中后,使用以下代码导入Lottie
import Lottie
Carthage
将Lottie添加到你的Cartfile中:
github "airbnb/lottie-ios" "master"
然后运行:
carthage update
在应用程序目标的"General"选项卡下的"Linked Frameworks and Libraries"部分,从carthage update
生成的Carthage/Build/iOS目录中拖放lottie-ios.framework。
Swift版本支持
Lottie支持Apple允许提交到App Store的最低版本的Swift / Xcode。你可以在Swift Package Index上查看Lottie支持的Swift版本的最新信息:
隐私
Lottie不收集任何数据。我们提供此声明以帮助你填写应用隐私详情。我们还提供了一个隐私清单,可以包含在你的应用程序中。
安全性
我们在GitHub上为每个发布版本分发XCFramework包。在Lottie 4.4.0及更高版本中,这些XCFramework包包含代码签名。这些包是以"Lottie iOS"的名义自签名的,具有以下指纹:
89 2F 1B 43 04 7B 50 53 8F 2F 46 EA D9 29 00 DD 3D 48 11 F358 21 78 C0 61 A5 FB 20 F1 11 CB 26
在Xcode中,你可以通过选择Lottie.xcframework
并确认它显示以下信息来验证这一点:
贡献
我们一直很感谢社区的贡献。要对项目进行更改,你可以克隆仓库并打开Lottie.xcworkspace
。这个工作空间包括:
- Lottie框架(适用于iOS、macOS和tvOS)
- 单元测试和快照测试(适用于iOS,必须在iPhone 8模拟器上运行)
- 一个示例iOS应用程序,可以浏览和测试仓库中包含的100多个示例动画
所有包含新功能或影响动画渲染方式的错误修复的拉取请求都应包括验证所包含更改的快照测试用例。
- 要向快照测试套件添加新的示例动画,你可以将
.json
文件添加到Tests/Samples
中。重新运行快照测试以生成新的快照图像文件。 - 要在进行更改后更新现有快照,你可以在
SnapshotTests.swift
的setUp()
方法中设置isRecording = true
,然后重新运行快照测试。
该项目还包括我们的Rakefile中定义的几个有用的命令。要使用这些命令,你需要安装Bundler:
$ sudo gem install bundle
$ bundle install
例如,所有Swift代码都应按照Airbnb Swift风格指南进行格式化。进行更改后,你可以通过运行bundle exec rake format:swift
使用SwiftFormat和SwiftLint自动重新格式化代码。其他有用的命令包括:
$ bundle exec rake build:all # 为所有平台构建所有目标
$ bundle exec rake build:package:iOS # 为iOS构建Lottie包
$ bundle exec rake test:package # 测试Lottie包
$ bundle exec rake format:swift # 根据Airbnb Swift风格指南重新格式化Swift代码