【发布时间】:2021-04-25 04:09:26
【问题描述】:
我在 UICollectionViewCell 中有一个计时器,
timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(shakeView), userInfo: nil, repeats: true)
现在我想在控制器消失时移除计时器, 但未调用单元 deinit
【问题讨论】:
-
我会先查看UICollectionViewDelegate#collectionView(_:didEndDisplaying:forItemAt:),它应该允许您在不再显示单元格时停止计时器 - 请记住,即使单元格关闭,它仍然可以“显示”屏幕,与性能有关。如果计时器锚定到控制器本身,那么您应该考虑使用
viewWill/DidDisappear本身 -
查看此链接我在 UITableviewCell 中发布了 Timer 的代码:stackoverflow.com/questions/40350895/…。为 UICollectionViewCell 尝试相同的逻辑。
标签: ios swift uitableview uicollectionviewcell