iOS UICollectionViewCell 删除计时器
Posted
技术标签:
【中文标题】iOS UICollectionViewCell 删除计时器【英文标题】:iOS UICollectionViewCell remove timer 【发布时间】: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 的代码:***.com/questions/40350895/…。为 UICollectionViewCell 尝试相同的逻辑。
【参考方案1】:
Deinit 方法没有被调用,因为它有保留循环。 检查所有闭包并确保使用弱自我或无主自我。
【讨论】:
以上是关于iOS UICollectionViewCell 删除计时器的主要内容,如果未能解决你的问题,请参考以下文章
iOS中UIcollectionviewCell的动态宽度?
iOS 子类 UICollectionViewCell 自定义 init 方法
iOS swift UICollectionviewcell 快照错误
iOS:如何更改 UICollectionViewCell 的方向?