我有一个MY-App使用我自己的框架的iOS应用程序MY-Framework.两者都是写的swift.该应用程序仅处理用户身份验证并将访问令牌传递给MY-Framework.MY-Framework然后处理整个ScreenFlow和业务逻辑.目标是将MY-Framework客户分发给他们的应用程序.
此处提供了展示此问题的项目设置的最小示例:https://github.com/vprimachenko/lottie-pod-problem-sample
现在我是用一些动画增强我的框架提供的视图,并使用lottie.我正在使用cocoapods版本1.6.0-pre
我Podfile用以下内容创建了一个
target 'fw' do
pod 'lottie-ios'
end
Run Code Online (Sandbox Code Playgroud)
这导致框架中的编译错误
./fw/fw/File.swift:4:8: error: no such module 'Lottie'
import Lottie
^
Run Code Online (Sandbox Code Playgroud)
经过一些谷歌搜索后我改变Podfile了:
target 'fw' do
use_frameworks!
pod 'lottie-ios'
end
Run Code Online (Sandbox Code Playgroud)
结果:运行时崩溃
dyld: Library not loaded: @rpath/Lottie.framework/Lottie
Referenced from: .../Build/Products/Debug-iphonesimulator/fw.framework/fw
Reason: image not found
Run Code Online (Sandbox Code Playgroud)
cocoapods发行说明提及use_modular_headers!,让我们尝试:
target 'fw' do
use_modular_headers!
pod 'lottie-ios'
end …Run Code Online (Sandbox Code Playgroud) 我正在使用 lottie 框架从 json 文件加载动画输入指示器。我想更改指示器颜色的动画。我不想更改 json 文件中的颜色。想要以编程方式更改动画视图的颜色。
例如:(. . . .) -> 打字指示符(想要改变点的颜色)
提前致谢
private let animationView = LOTAnimationView(name:
Constants.ImageAssets.typingIndicatorIcon, bundle:Bundle(identifier: Constants.GenericKeys.bundleIdentifier)!)
private func loadTypingIndicator() {
animationView.loopAnimation = true
animationView.translatesAutoresizingMaskIntoConstraints = true
// *** It's not working
animationView.setValue(UIColor.green, forKeypath: "boule.Ellipse 1.Fill 1.Color", atFrame: 0)
animationView.play()
}
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用 Lottie 动画,当我退出应用程序并再次打开它(不是强制关闭)时,我试图让动画在后台运行。
我能够成功做到这一点,但问题是当我选择不同的标签栏项目并返回具有动画视图的标签栏项目时,动画会停止。
这是我的代码。
import UIKit
import Lottie
import UserNotifications
import NotificationCenter
class HomeViewController: UIViewController {
@IBOutlet weak var animationView: UIView!
var animation : AnimationView?
override func viewDidLoad() {
super.viewDidLoad()
setupAnimation()
NotificationCenter.default.addObserver(self, selector: #selector(applicationEnterInForground), name: UIApplication.willEnterForegroundNotification, object: nil)
}
func setupAnimation() {
animation = AnimationView(name: "cong")
animation?.frame = self.animationView.bounds
self.animationView.addSubview(animation!)
animation?.loopMode = .loop
animation?.contentMode = .scaleAspectFit
animation?.play()
}
@objc func applicationEnterInForground() {
if animation != nil {
if !(self.animation?.isAnimationPlaying)! {self.animation?.play()}}
}
}
Run Code Online (Sandbox Code Playgroud) 我想在运行时以本机反应检测低性能设备以禁用复杂的lottie动画。我考虑使用来自 的设备型号react-native-device-info,但我应该有一个高性能手机列表
我想在Flutter应用中启动任何内容之前为启动屏幕添加Lottie动画。我签出的插件尚不完全支持动画的所有功能,或者无法按需工作。
有什么方法可以在实际的flutter活动启动之前添加它。我希望动画完全完成,然后再转到主要内容。
任何帮助表示赞赏,谢谢!
适用于Lottie IOS的AirBNB的README.md已更新。setAnimation不在自述文件中,也没有在更新版本3.0.0的选择器的快速下拉列表中注册。有人遇到此问题吗?Lottie cocoapod已成功安装。
README.md试用和错误重新启动
@IBOutlet private var animationView: AnimationView!
override func viewDidLoad() {
super.viewDidLoad()
startAnimation()
}
func startAnimation() {
animationView.setAnimation(named: "spineffectloader")
animationView.play()
}
Run Code Online (Sandbox Code Playgroud) 使用 FFMPEG 视频处理库和 MediaCodec 处理 Lottie 动画有一些独特的概念。在这方面,我想从 Lottie 动画制作视频并将该视频叠加在其他原始视频上。
但问题是我无法从 Lottie 动画制作具有透明背景的视频。因此,我使用 MediaCodec 和 MediaMuxer 从 Lottie 动画制作了简单的视频,它从 Lottie Drawable 中一帧一帧地将其附加到视频(Lottie Video)。这是有关此概念的链接 - https://engineering.21buttons.com/how-to-generate-videos-using-lottie-in-android-2db6ecceb2a
然后我使用 FFmpeg 库将此视频叠加到原始视频上。这里 FFmpeg 执行两个任务,首先它在 Lottie Video 中制作透明背景,其次它将这个 Lottie Video 覆盖在原始视频之上。
这里实际的问题就出来了,FFmpeg 在处理 25 秒的视频时需要超过 8 到 9 分钟,所以我想找到这个问题的解决方案,因为我的时间限制只有 1 到 2 分钟。任何人都有解决方案或实现此概念的新IDE,那么请告诉我,我将不胜感激。
我想要制作loader,设计师将其以Figma的Json形式发送给我,但我想将其转换为Lottie可用的json动画。
也许您知道如何自己或在设计师的帮助下正确地做到这一点?
太感谢了!
我在我的 React 本机应用程序中添加了一个 Lottie 加载动画,该动画到目前为止正在运行,但不知何故颜色没有显示,而仅显示白色动画。
这是代码。
<View style={styles.lottieLoadingWrapper}>
<LottieView
style={styles.lottieLoading}
source={require('../assets/loading-2.json')}
autoPlay
loop
/>
</View>
Run Code Online (Sandbox Code Playgroud)
我没有在样式表中做任何事情。我尝试过多种动画,但都是简单的白色。我在这里犯的错误可能是什么?
更新:以下是样式代码
lottieLoadingWrapper: {
width: 50,
height: 50,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'yellow',
alignSelf: 'center',
},
lottieLoading:{
width: 50,
height: 50,
backgroundColor: 'rgba(120, 120, 120, 0.66)',
justifyContent: 'center',
alignItems: 'center',
}
Run Code Online (Sandbox Code Playgroud)
以下是我正在使用的动画
我在 NextJS 项目中使用 lottie JSON 文件来显示其中一些很酷的动画。
问题是 Lottie JSON 文件很大,确实降低了应用程序的性能。有没有人找到一种方法来使用这些动画,而不会将其项目的性能得分减半?
我在我的个人网站(下面的链接)上使用它们,lottie 文件位于服务部分(如果您滚动到下面一点)。初始页面加载感觉有点慢,我真的很想找到解决方案。
lottie ×10
ios ×4
swift ×4
animation ×2
react-native ×2
android ×1
cocoapods ×1
ffmpeg ×1
figma ×1
flutter ×1
lottie-ios ×1
mediamuxer ×1
next.js ×1
reactjs ×1
xcode ×1