シンプルなアニメーション(実際には2つありますが、例の簡略化のために1つだけ表示されます)が連続してフェードインし、したがって、アニメーション化されたセルが消えてからスクロールバックするような方法でテーブルビューをスクロールすると、それらのセルはもうアニメーション化されません。私は(UITableViewCell
から継承)私のカスタムセルクラスのインスタンスメソッドであるメソッドと呼ばれるセットアップ()でこのアニメーションを開始アニメーションは、セルが消えると停止し、再び表示されても再開しません。
UIView.animateKeyframesWithDuration(
0.5,
delay: 0.0,
options: [.Repeat, .Autoreverse, .AllowUserInteraction],
animations: {
self.stateLabel.alpha = 0.5
}, completion: nil)
:ここ
アニメーションです。私が言ったように、同じように動作する別のアニメーションがあり、それはイメージビューを振るので、これはアニメーションのフェードする種類に関連していないことが肯定的です。setup()
メソッドをデキューした後にcellForRowAtIndexPath
メソッドで呼び出します。
setup()
メソッドをwillDisplayCell
メソッドで実行しようとしましたが、結果は同じです(このメソッドではデキューしていません)。
また、ブレークポイントを試してアニメーションコードを実行しました。ちょうど、セルが再表示されたときにアニメーションが開始されません。ですから、問題は、セルが再び表示されたときにアニメーションを再始動/継続する方法です。
このアニメーションを実行する前にアルファ値をリセットしてください。 'cellForRowAtIndexPath'でそれを行うことができます。私の推測では、一度セルを表示し、そのセルに戻ってスクロールすると、同じ値のままなので、アニメーションは発生しません。 – Ayazmon
@Ayazmonそうだった。あなたが答えを出したら、私はそれを受け入れて喜んで受け入れるでしょう:) – Whirlwind
喜んで助けました:)基本的にアニメーションのセルのライフサイクルを伝える答えを書きました。 – Ayazmon