我有簡單的動畫(實際上是其中的兩個,但僅顯示一個用於簡單示例),它會不斷淡入並淡出標籤。所以,當我以一些動畫單元格消失的方式滾動tableview,然後向後滾動時,那些單元格就不再生動了。當單元格消失時動畫停止,再次出現時不會恢復
這裏是動畫:
UIView.animateKeyframesWithDuration(
0.5,
delay: 0.0,
options: [.Repeat, .Autoreverse, .AllowUserInteraction],
animations: {
self.stateLabel.alpha = 0.5
}, completion: nil)
我在方法中調用設置(),這是我的自定義單元格類(從UITableViewCell
繼承)的實例方法來啓動這個動畫。正如我所說,還有另一種動畫行爲相同,它震動了圖像視圖,所以我肯定這與動畫的淡出類型無關。
我在去隊列之後調用setup()
方法cellForRowAtIndexPath
方法。
我試過的是在willDisplayCell
方法中運行這個setup()
方法,但結果是一樣的(當然我沒有在這個方法中將這個方法取出)。
此外我嘗試了斷點,並執行動畫代碼。只是,當細胞重新出現時,動畫不會開始。所以問題是,當細胞再次出現時如何重新啓動/繼續動畫?
確保在運行此動畫之前重置Alpha值。你可以在'cellForRowAtIndexPath'中完成。我的猜測是一旦你顯示一個單元格並回滾到它,值保持不變,因此不會出現動畫。 – Ayazmon
@Ayazmon就是這樣。如果你做出答案,我會非常樂意接受&upvote :) :) – Whirlwind
很高興它幫助:)我寫了一個答案,基本上告訴動畫細胞的生命週期。 – Ayazmon