tableviewcell 被查看的次数和 运行 基于它的函数
The Amount of times a tableviewcell has been viewed and run a function based on it
我想获取表视图中的单元格在完全位于视图中时被查看的次数。只有当它完全在视图中时才会发生这种情况,顶部和底部单元格的小部分不应该计算在内。
并且经过一定时间(~3 秒)后,它应该触发打印功能 "hello"。
我尝试创建一个计时器并在 willDisplay
方法中安排它并在 didEndDisplayingCell
方法中使它无效。它以某种方式考虑了未完全在视图中的单元格。
也尝试了 tableView.visibleCells
并在 tableView.indexPathsForVisibleRows
中迭代单元格,但没有任何帮助。
如有任何帮助,我们将不胜感激。
干杯!
虽然您想跟踪一个单元格显示了多长时间(以及它显示的次数),但您实际上并不想将这些数字保留在您的自定义(子类)UITableViewCell 中,因为这些当单元格在屏幕上和屏幕外滚动时,它们会很快被回收和重复使用。
无论您的数据源对象是什么,您都应该向其添加一个 属性(或两个)以跟踪对象何时显示在单元格中(即“var displayCount : Int
”属性?),并且您可以启动 Timer
(或 NSTimer
)以在显示 "Hello" 消息之前计算 X 秒。
您可以通过找到的方法 in the answers to this related question 检测单元格是否完全可见,也就是您可以启动 Timer
。
要检测单元格何时滚动到屏幕外(因此您可以增加显示计数 and/or 取消计时器),use the delegate method didEndDisplayingCell
。
我想获取表视图中的单元格在完全位于视图中时被查看的次数。只有当它完全在视图中时才会发生这种情况,顶部和底部单元格的小部分不应该计算在内。
并且经过一定时间(~3 秒)后,它应该触发打印功能 "hello"。
我尝试创建一个计时器并在 willDisplay
方法中安排它并在 didEndDisplayingCell
方法中使它无效。它以某种方式考虑了未完全在视图中的单元格。
也尝试了 tableView.visibleCells
并在 tableView.indexPathsForVisibleRows
中迭代单元格,但没有任何帮助。
如有任何帮助,我们将不胜感激。 干杯!
虽然您想跟踪一个单元格显示了多长时间(以及它显示的次数),但您实际上并不想将这些数字保留在您的自定义(子类)UITableViewCell 中,因为这些当单元格在屏幕上和屏幕外滚动时,它们会很快被回收和重复使用。
无论您的数据源对象是什么,您都应该向其添加一个 属性(或两个)以跟踪对象何时显示在单元格中(即“var displayCount : Int
”属性?),并且您可以启动 Timer
(或 NSTimer
)以在显示 "Hello" 消息之前计算 X 秒。
您可以通过找到的方法 in the answers to this related question 检测单元格是否完全可见,也就是您可以启动 Timer
。
要检测单元格何时滚动到屏幕外(因此您可以增加显示计数 and/or 取消计时器),use the delegate method didEndDisplayingCell
。