查看tableviewcell的次数并基于它运行函数

时间:2017-08-21 21:32:44

标签: ios uitableview swift3 uicollectionviewcell

我希望获取tableview中的单元格完全在视图中时的查看次数。这应该只发生在它完全在视图中时,顶部和底部单元格的小部分不应该计算。

经过一段时间(约3秒)后,它应该触发打印“你好”的功能。

我尝试创建计时器并在willDisplay方法中对其进行计划,并在didEndDisplayingCell方法中使其无效。它以某种方式考虑了视图中不完全的单元格。

还尝试tableView.visibleCells并在tableView.indexPathsForVisibleRows中迭代单元格,但没有任何帮助。

对此的任何帮助将不胜感激。 干杯!

1 个答案:

答案 0 :(得分:1)

虽然您想要跟踪单元格显示的时长(以及它显示的次数),但实际上您并不想将这些数字保留在自定义(子类)中UITableViewCell,因为它们在屏幕上和屏幕外滚动时可以非常快速地回收和重复使用。

无论您的数据源对象是什么,您都应该向其中添加一个属性(或两个)以跟踪对象在单元格中的显示时间(即" var displayCount : Int"属性? ),你可以开始Timer(或NSTimer)计算X秒,然后再显示你的" Hello"信息。

您可以通过in the answers to this related question找到的方法检测单元格是否完全可见,这时您可以启动Timer

要检测单元格何时在屏幕外滚动(这样您可以增加显示计数和/或取消计时器),use the delegate method didEndDisplayingCell