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のアルファに設定されています)。
ここで問題と思われるものは何ですか?
Idinduは私にそれを打つ。相対的な開始時間は0(アニメーション全体の先頭)と1(アニメーションの最後)の範囲内にある必要があります。 –
アニメーション全体を2秒にしたい場合。キーフレームの相対開始時間を2の比率にする必要がありますか?だから0,0.25,0.5,0.75? – Bob
各アニメーションブロックの所要時間は全体の持続時間に比例しており、累積時間を追跡することで開始時刻が正しいことを確認する必要があります。あなたの比率AFAIKは、2の比率である必要はありませんが、2の全体の期間内に、実際のアニメーションはoptionsパラメーターによって導かれるそれらの間を補間します。 – ldindu