我希望获取tableview中的单元格完全在视图中时的查看次数。这应该只发生在它完全在视图中时,顶部和底部单元格的小部分不应该计算。
经过一段时间(约3秒)后,它应该触发打印“你好”的功能。
我尝试创建计时器并在willDisplay
方法中对其进行计划,并在didEndDisplayingCell
方法中使其无效。它以某种方式考虑了视图中不完全的单元格。
还尝试tableView.visibleCells
并在tableView.indexPathsForVisibleRows
中迭代单元格,但没有任何帮助。
对此的任何帮助将不胜感激。 干杯!
答案 0 :(得分:1)
虽然您想要跟踪单元格显示的时长(以及它显示的次数),但实际上您并不想将这些数字保留在自定义(子类)中UITableViewCell,因为它们在屏幕上和屏幕外滚动时可以非常快速地回收和重复使用。
无论您的数据源对象是什么,您都应该向其中添加一个属性(或两个)以跟踪对象在单元格中的显示时间(即" var displayCount : Int
"属性? ),你可以开始Timer
(或NSTimer
)计算X秒,然后再显示你的" Hello"信息。
您可以通过in the answers to this related question找到的方法检测单元格是否完全可见,这时您可以启动Timer
。
要检测单元格何时在屏幕外滚动(这样您可以增加显示计数和/或取消计时器),use the delegate method didEndDisplayingCell
。