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

Why is this Lottie JSON animation not showing in the UIView upon building?

这是我的 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()
}

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

    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)

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

我将 post 我的解决方案供将来遇到此问题的任何人使用,因为我认为 Airbnb 的文档关于为 UIView 设置动画有点含糊。问题是我基本上忘记了设置视图的框架大小,我不得不使用与 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()

   }
}