测试 dequeueReusableCellWithIdentifier:forIndexPath

Test dequeueReusableCellWithIdentifier:forIndexPath

我在这里阅读了很多关于在不同问题中重用 table 单元格的内容。

  1. 我实现了 UITableview 的子class(在Swift)
  2. 在我的 ViewController 的 ViewDidLoad() 中注册了此 class(我没有使用故事板)
  3. 并在 table 视图中使用 dequeueReusableCellWithIdentifier:forIndexpath cellForRowAtIndexPath

据我所知,这应该可以重复使用单元格。 但是,如果细胞实际上被重复使用,有没有办法 test ? 例如在 Instruments 中或通过在调试器中打印。

感谢您的帮助!

有多种方法可以做到。

首先,你可以随便写点东西登录initWithStyle:reuseIdentifier:。您将看到与屏幕上同时显示的单元格一样多的日志条目。

其次:您可以在 cellForRowAtIndexPath 中以某种方式标记您的细胞。例如,单元格的标签默认设置为 0。因此,当您从 dequeueReusableCell... 获取一个单元格时,如果它有一个等于 0 的标签,您可以将其设置为其他内容。否则,您只是收到了一个重复使用的单元格。您还可以将第一个单元格的标签设置为 1,然后将第二个单元格的标签设置为 2,依此类推。这样您还可以找出使用的单元格数量。您只需要跟踪到目前为止最大的标签。

您还可以添加一些自定义 属性 并像标签一样使用它。

另一种选择是在调试器中打印单元格。正如@RichTolley 在上面的评论中所建议的那样。但在我看来这不是很方便(手动比较指向每个单元格的指针)。

最简单的方法是在cell.tag = indexPath.row+1的单元格中设置一个标签(添加一个防止设置默认0值)并设置断点条件,如图所示。如果标签将不同于 0 断点停止并在控制台上打印标签。 How to set condition breakepoint