0
我正在嘗試動畫幾個圓圈並同時更改其不透明度。在關鍵幀動畫期間更改不透明度Swift
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)。
這似乎是什麼問題?
Idindu擊敗了我。 (投票)。相對開始時間必須在範圍0(整個動畫的開始)和1(動畫的最後) –
所以如果我想要整個動畫是2秒長。我的關鍵幀相對開始時間應該是2的比率嗎?所以0,0.25,0.5,0.75? – Bob
每個動畫塊花費的時間與整個持續時間有關,您需要通過跟蹤累計時間來確保開始時間正確。您的比例AFAIK不需要是2的比例,但是在整個持續時間2內,實際動畫會在它們之間進行插值,這由參數選項參數指導。 – ldindu