gpt4 book ai didi

ios - UIView动画跳过第一个动画

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

对此很陌生!

我一运行就按下按钮“按下”UIView“背景”的背景颜色立即变为蓝色,然后动画变为紫色,完全跳过动画变为黄色,然后变为蓝色。

我做错了什么?

  @IBAction func Press(sender: AnyObject) {

UIView.animateWithDuration(5, animations: {
self.Background.backgroundColor = UIColor.yellowColor()
self.Background.backgroundColor = UIColor.blueColor()
self.Background.backgroundColor = UIColor.purpleColor()
}, completion:{(Bool) in
println("COLOR CHANGED")
})
}

最佳答案

您不能在单个 UIView.animateWithDuration 中为同一属性设置多个状态更改 的动画称呼。它只会对最后的状态变化进行动画处理(就像你的情况一样)。相反,您可以使用 completionBlock 将它们链接在一起.

UIView.animateWithDuration(5/3.0, animations: {

self.view.backgroundColor = UIColor.yellowColor()

}, completion:{ finished1 in
UIView.animateWithDuration(5/3.0, animations: {

self.view.backgroundColor = UIColor.blueColor()

}, completion:{finished2 in
UIView.animateWithDuration(5/3.0, animations: {

self.view.backgroundColor = UIColor.purpleColor()

}, completion:{finished3 in

println("COLOR CHANGED")
})
})
})

或者您可以使用关键帧动画,指定中间帧,如下所示。 relativeDuration应该是一个介于 0 和 1 之间的值,表示一个关键帧的相对持续时间。例如,如果整个动画是 3 seconds和 relativeDuration 是 (1/3) , 然后该关键帧将为 3/3 = 1 设置动画第二。

relativeStartTime类似地,关键帧开始后相对于整个动画持续时间的相对时间。例如,如果整个动画是 3 seconds和 relativeStartTime 是 (1/3) ,那么该关键帧将在 1 second 之后开始

var duration = 5.0;
var relativeDuration = 1.0/3;

UIView.animateKeyframesWithDuration(duration, delay: 0, options: nil, animations: {
UIView.addKeyframeWithRelativeStartTime(0, relativeDuration: relativeDuration, animations: {
self.view.backgroundColor = UIColor.yellowColor()
})
UIView.addKeyframeWithRelativeStartTime(relativeDuration, relativeDuration: relativeDuration, animations: {
self.view.backgroundColor = UIColor.blueColor()
})
UIView.addKeyframeWithRelativeStartTime(2 * relativeDuration, relativeDuration: relativeDuration, animations: {
self.view.backgroundColor = UIColor.purpleColor()

})
}, completion:nil);

关于ios - UIView动画跳过第一个动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27955494/

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