我在UICollectionViewCell
中設置了NSTimer
。它運行正常,除非在我通過segue更改視圖後它會一直持續運行。我應該如何阻止它?想到的一個解決方案是NSNotificationCenter
。有沒有更好的辦法?非常感謝!在離開視圖後停止UICollectionViewCell中的NSTimer
回答
我不知道,但是當你給你的計時器的名稱,例如:let myTimer:NSTimer = ...
那麼你就可以在prepareForSegue
功能做:myTimer.invalidate()
此功能停止計時器。 所以把所有的計時器在var myArray = [NSTimer]()
,然後在prepareForSegue:
for timer in myArray {
timer.invalidate()
}
怎麼樣在你的細胞,並在viewWillDisappear()
呼籲創建無效的方法的計時器,對所有可見的細胞的方法
let cells = self.tableView.visibleCells();
for cell in cells {
// call invalidate
}
這也是一個好主意。但我認爲計時器不會停在隱藏的單元上......如果我切換到另一個控制器,它甚至不會停止。 – 2014-10-11 17:13:00
我會檢查並報告它是否工作 – 2014-10-11 17:37:16
通常您應該使您的單元格的prepareForReuse()中的前一個定時器無效,並執行一些邏輯以保存每個單元格的當前運行時間(如時間戳),然後在顯示時繼續定時器再次從(保存時間+從保存時間戳過去的時間)(當您向後滾動時) – SaintTail 2014-10-13 14:55:16
- 1. 當離開視圖時停止NSTimer
- 2. 停止SKSpriteNode離開視圖(Swift)
- 3. 停止NSTimer
- 4. NSTimer不停止?
- 5. UIPickerView停止NSTimer
- 6. NSTimer不停止
- 7. IOS:停止的NSTimer
- 8. 如何在用戶離開視圖時停止播放音頻
- 9. GLKViewController - DrawinRect和Update在離開視圖時停止點火?
- 10. 在視圖離開時終止$ interval
- 11. NSTimer在運行時停止?
- 12. 如何停止NSTimer
- 13. 如何停止NSTimer
- 14. 立即停止NSTimer
- 15. NSTimer未能停止?
- 16. NSTimer沒有停止
- 17. 不能停止NSTimer
- 18. 如何停止NSTimer
- 19. 停止當鼠標離開在JQuery中
- 20. 停止已安排的nstimer
- 21. 的NSTimer不會停止
- 22. 離開視圖時停止異步塊請求(AFNetworking; iOS)
- 23. 離開ViewController時停止AVCaptureSession
- 24. NSTimer在一段時間後在後臺停止
- 25. NSTimer在一段時間後在後臺停止射擊
- 26. NSTimer在滾動過程中停止
- 27. 停止NSTimer並解僱視圖控制器(swift)
- 28. NSTimer在應用程序進入後臺後不會停止
- 29. 的NSTimer不停止在已失效
- 30. 使用UIButton停止NSTimer
我爲每個'UICollectionViewCell'創建一個計時器,所以它在附加的類中。這是錯的嗎? – 2014-10-11 05:32:09
那麼定時器是什麼?但是你也可以把所有的定時器放在一個數組中,然後在for循環中停止它們。我會爲你更新我的答案 – borchero 2014-10-11 07:48:55
這是重複動畫和做一些計算。這些計算是特定於單元格的。所以每個人都應該有一個計時器。我可能會嘗試在Controller中使用一個計時器,並在「viewWillDisappear」中使其失效或嘗試使用無效的版本。謝謝! – 2014-10-11 17:10:52