我试图动画几个圆圈并同时改变它们的不透明度。
UIView.animateKeyframesWithDuration(2, delay: 0, options: .Repeat, animations: {
UIView.addKeyframeWithRelativeStartTime(0, relativeDuration: 0.5, animations: {
self.innerRingView.alpha = 1
})
UIView.addKeyframeWithRelativeStartTime(0.5, relativeDuration: 0.5, animations: {
self.innerRingView.alpha = 0
self.middleRingView.alpha = 1
})
UIView.addKeyframeWithRelativeStartTime(1, relativeDuration: 0.5, animations: {
self.middleRingView.alpha = 0
self.outterRingView.alpha = 1
})
UIView.addKeyframeWithRelativeStartTime(1.5, relativeDuration: 0.5, animations: {
self.outterRingView.alpha = 0
})
}, completion: nil)
出于某种原因,它永远不会进入第二个动画:
UIView.addKeyframeWithRelativeStartTime(1, relativeDuration: 0.5, animations: {
self.middleRingView.alpha = 0
self.outterRingView.alpha = 1
})
因此,我的动画无效。 innerRingView永远不会回到0不透明度,并且outterRingView永远不会出现(默认情况下所有视图都设置为0 alpha。)
这里似乎有什么问题?
答案 0 :(得分:3)
问题似乎与您的关键帧相对开始时间
有关UIView.addKeyframeWithRelativeStartTime
必须在0到1的范围内,其中0表示整个动画的开始,1表示整个动画的结束。例如,对于持续时间为两秒的动画,指定开始时间为0.5会导致动画在整个动画开始后的一秒钟内开始执行。