ios - 是否可以在 Lottie 框​​架中组合两个动画

标签 ios swift xcode animation lottie

swift版本为5,lottie版本为3.1.1

我想用 Lottie 显示两个动画 Json 文件,这样第一个动画淡入淡出,完成后淡出,另一个淡入,我必须循环并在无限循环中进行。

boardAnimationViewForSecondSlide = AnimationView(frame: CGRect(x: 0, y: 0, width: frame.width, height: frame.width * (690 / 750)))
boardAnimationViewForSecondSlide?.animation = Animation.named("Slidetwop1")
slide.addSubview(boardAnimationViewForSecondSlide)

然后我为 handle completion play 的方法定义了一个闭包

private var animationState: Int = 0 // 0 first slid, 1 second slide
private var changeStateInSlide2: (Bool) -> Void = { finish in
   if animationState == 0 {
        boardAnimationViewForSecondSlide.animation =  Animation.named("Slidetwop2.json")
        playSecondPage = true
   } else {
         boardAnimationViewForSecondSlide.animation =  Animation.named("Slidetwop1.json")
         playSecondPage = true
    }
}


fileprivate var playSecondPage: Bool {
        get {
            return false
        }
        set {
            if newValue {
               boardAnimationViewForSecondSlide.play(completion:changeStateInSlide2)
            }
        }
    }

最佳答案

我认为最简单的方法是创建一个函数来启动动画。

例子:

/// Start animation with Lottie
    func startAnimation(viewName: AnimationView, jsonName: String) {
        viewName.isHidden = false
        viewName.animation = Animation.named(jsonName)
        viewName.play { (_) in
            viewName.isHidden = true
        }

在此之后,您可以简单地一个接一个地调用该方法:

startAnimation(viewName: checkAnimation, jsonName: "Slidetwop1")
startAnimation(viewName: checkAnimation, jsonName: "Slidetwop2")

或者使用完成处理程序调用第二个。

编辑:对于循环你可以使用这个解决方案:

/// Start animation with Lottie
func startAnimation() {
    animationLottieView.animation = Animation.named("Slidetwop1")
    animationLottieView.play { (finished) in
        // completion handler
        self.animationLottieView.animation = Animation.named("Slidetwop2")
        self.animationLottieView.play { (finishedAnimation) in
            self.startAnimation()}
    }
}

关于ios - 是否可以在 Lottie 框​​架中组合两个动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57783045/

相关文章:

ios - CSS 固定定位在 IOS 上导致在放大然后缩小后滚动不稳定(使用 fancybox)

ios - Xcode Storyboard 警告 : Constraint referencing items turned off in current configuration. 在当前配置中关闭此约束

ios - 使用本地化设置默认语言

iphone - 无法部署具有开发人员配置文件的发布版本

objective-c - 自动生成的 Swift.h 文件一直找不到

iphone - 更改选择器 View 文本颜色

ios - 如何制作像gomoji应用程序一样的2D模型(可移动)?

ios - 我们如何快速使 'static' 变量线程安全?

arrays - 使用 Swift 反转数组中的字符串

ios - Swift:如何提高文档中图像的加载速度?