测试 dequeueReusableCellWithIdentifier:forIndexPath
Test dequeueReusableCellWithIdentifier:forIndexPath
我在这里阅读了很多关于在不同问题中重用 table 单元格的内容。
- 我实现了 UITableview 的子class(在Swift)
- 在我的 ViewController 的 ViewDidLoad() 中注册了此 class(我没有使用故事板)
- 并在 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
我在这里阅读了很多关于在不同问题中重用 table 单元格的内容。
- 我实现了 UITableview 的子class(在Swift)
- 在我的 ViewController 的 ViewDidLoad() 中注册了此 class(我没有使用故事板)
- 并在 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