で奇妙なことが、このシナリオで何が起こっているのかを把握するために私を助けん:UIViewPropertyAnimatorアプリケーションのライフサイクル
イマジンあなたはあなたがviewDidLoad()
で
@IBOutlet weak var blurView: UIVisualEffectView!
var animator: UIViewPropertyAnimator?
次のプロパティを持つビューコントローラを持っています
animator = UIViewPropertyAnimator(
duration: 1,
curve: .easeOut,
animations: {
self.blurView.effect = UIBlurEffect(style: .light)
})
animator?.fractionComplete = 0
作業中のぼかし効果を確認するには、その背後に何かを置く必要があります(例:UIImageView)。
@IBAction private func sliderDidChange(_ sender: UISlider) {
animator?.fractionComplete = CGFloat(sender.value)
}
あなたがバックグラウンドでアプリを入れて戻ってくるしばらくプレイした後: また、アニメーションを再生するUISliderを持っています。 何が見えますか? 何らかの理由で、バックグラウンドでアニメーションが開始し、アニメーションが最終状態に戻ったときに開始されます。 しかし、私はこの動作がUIVisualEffectView
に関連していることに気付きました。 アニメーターのその他のプロパティー(たとえばopacity
またはtransform
)を変更した場合、アニメーターは期待どおりに機能します(アプリがバックグラウンドになると何も変わりません)。
私は何かが間違っていたか、それともUIKitバグですか?
私のソリューションはあなたのために機能しましたか? – nathan