如何在Lottie(iOS)中加载新动画时解决性能问题?

时间:2019-11-28 06:58:37

标签: swift xcode swift3 lottie lottie-ios

我正在尝试使用Xcode 11.2制作一个简单的游戏,其中包含一个动画循环背景和一个视图,该视图显示并更改项目中多个Lottie json文件中的各种动画。

问题是:

当我单击“下一步”按钮以更改视图动画时,正在循环的背景视图将停留一秒钟,直到加载视图中的下一个动画为止,应用程序中的所有内容同时冻结,就像背景动画。

我已经做了很多研究以解决此问题,但是我什么都没发现。

CPU使用率从30%到63%不等。

我不想使这个问题复杂化...所以我只是在说明我使用Lottie的方式。

@IBAction func SubmitButtonAction(_ sender: UIButton) {

    showNextQuestion()

}

func showNextQuestion()->(){

    myTimer.invalidate()
    startCountdown(fromTime: 15)
    Manager.generateQuestion()
    lblLevel.text = String(Manager.questionNumber) + "/" + String(DataModel.Questions.count)
    nIndex = 0


    let animation = AnimationView(name: Manager.currentImage)

    animation.loopMode = .loop
    animation.play()
    animation.backgroundColor = UIColor.clear
   animation.frame = self.AnimView.bounds
    animation.backgroundBehavior = .pauseAndRestore
    if AnimView.subviews.isEmpty{
        self.AnimView.addSubview(animation)
    }
    else {
        for one in imgImageView.subviews{
            one.removeFromSuperview()
        }
        self.AnimView.addSubview(animation)
    }

    AnswerCollectionView.reloadData()
    RandomCollectionView.reloadData()

}

至少可以帮助我猜测问题与...有关,我的意思是它与线程问题或其他问题有关。

0 个答案:

没有答案