1

我试过用 Spring 链接动画,但遗憾的是,文档对链接动画(https://github.com/MengTo/Spring)非常不清楚。

我还看到有些人问了同样的问题,但不知何故,他们的答案对我不起作用。( Spring Meng To 链接动画?https://github.com/MengTo/Spring/issues/123 )

我尝试过使用 Spring 示例中的链:

func startAnimationSpringChain()  {
    self.springView.animation = "slideRight"
    self.springView.animateNext {
        self.springView.animation = "fadeOut"
        self.springView.animate()
    }
}

这里第一个动画有效,但第二个动画是“fadeOut”和反向播放的“slideRight”的组合。

然后我尝试使用 PromiseKit 的 Promises ( https://github.com/mxcl/PromiseKit ):

func startAnimationPromise()  {
    firstly {
        self.firstAnimation()
        }.done {
            self.secondAnimation()
    }
}

func firstAnimation () -> Promise<Void>{
    return Promise { seal in
        self.springView.animation = "SlideRight"
        self.springView.animate()
        seal.fulfill(())
    }
}

func secondAnimation() -> Promise<Void>{
    return Promise { seal in
        self.springView.animation = "fadeOut"
        self.springView.animate()
        seal.fulfill(())
    }
}

这导致仅快速播放第二个动画“fadeOut”。

谁能解释一下这三个功能:

animateNext { ... }
animateTo()
animateToNext { ... }

因为我发现很难理解他们到底在做什么。

感谢您的帮助,我非常感谢,我很高兴关于我的代码的各种建议!:)

最好的

4

1 回答 1

1

我使用animateToNext链接动画的方法。似乎animateNext不等待上一个动画的结束。像这样的东西:

self.springView.animation = Spring.AnimationPreset.SlideRight.rawValue
self.springView.animateToNext {
        self.springView.animation = Spring.AnimationPreset.FadeOut.rawValue
        self.springView.animate()
}

你也会看到这个答案。

但是,在一个动画链中使用它们时,似乎并非所有动画都能正常工作。

于 2018-09-27T12:28:01.333 回答