gpt4 book ai didi

swift - 为什么这个 Lottie JSON 动画在构建时没有显示在 UIView 中?

转载 作者:行者123 更新时间:2023-11-28 05:39:50 25 4
gpt4 key购买 nike

这是我的UIViewController:

 import UIKit
import Lottie

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad() {
let rocketAnimationView = AnimationView()
//Set animation
let rocketAnimation = Animation.named("my-json-rocket-animation")
rocketAnimationView.animation = rocketAnimation
rocketAnimationView.play()
}

当我构建时,动画不显示—— View 只是空白。我已尝试在 viewDidLoad() 中实现以下内容,这似乎可行,但我的动画无法缩放到我的整个 View :

    let animation = Animation.named("my-json-rocket-animation")

animationView.animation = animation
animationView.contentMode = .scaleAspectFit
view.addSubview(animationView)

animationView.backgroundBehavior = .pauseAndRestore


animationView.translatesAutoresizingMaskIntoConstraints = false
animationView.topAnchor.constraint(equalTo: view.layoutMarginsGuide.topAnchor).isActive = true
animationView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true

animationView.bottomAnchor.constraint(equalTo: view.layoutMarginsGuide.bottomAnchor).isActive = true
animationView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
animationView.setContentCompressionResistancePriority(.fittingSizeLevel, for: .horizontal)

我希望我的动画显示在 View 中,但我的屏幕仍然是空白的。我是否需要创建一个新的 UIView 并将其与类类型为 AnimationView 的 IBOutlet 连接,然后以某种方式设置动画?我知道这可以通过在 3.1.2 版本之前简单地编写 animationView.setAnimation(named: "my-json-rocket-animation") 来实现,但我不确定它是否仍然可行。

最佳答案

我会为将来遇到此问题的任何人发布我的解决方案,因为我认为 Airbnb 的文档关于为 UIView 设置动画有点含糊。问题是我基本上忘记了设置 View 的框架大小,我不得不使用与 UIView 对应的 IBOutlet。

import UIKit
import Lottie

class ViewController: UIViewController {


@IBOutlet weak var lottieView: UIView!
let animationView = AnimationView()

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.

animationView.animation = Animation.named("my-json-rocket-animation")
animationView.frame.size = lottieView.frame.size
animationView.contentMode = .scaleToFill

lottieView.addSubview(animationView)
animationView.backgroundBehavior = .pauseAndRestore

animationView.play()

}
}

关于swift - 为什么这个 Lottie JSON 动画在构建时没有显示在 UIView 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57227734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com