Ios 测试dequeueReusableCellWithIdentifier:forIndexPath
我在这里读了很多关于重用表格单元格的问题Ios 测试dequeueReusableCellWithIdentifier:forIndexPath,ios,swift,uitableview,Ios,Swift,Uitableview,我在这里读了很多关于重用表格单元格的问题 我实现了UITableview的一个子类(在Swift中) 在我的ViewController的ViewDidLoad()中注册了这个类(我没有使用故事板) 并在tableView的 cellForRowAtIndexPath 据我所知,这应该重复使用电池。 但是,有没有办法测试电池是否确实被重复使用? 例如,在仪器中或通过在调试器中打印 谢谢你的帮助 有很多方法可以做到这一点 首先,您可以编写一些东西来登录initWithStyle:reuseIden
谢谢你的帮助 有很多方法可以做到这一点 首先,您可以编写一些东西来登录
initWithStyle:reuseIdentifier:
。您将看到与屏幕上同时显示的单元格一样多的日志条目
第二:您可以在cellforrowatinexpath
中以某种方式标记单元格。例如,单元格的标记默认设置为0
。因此,当您从dequeueReusableCell…
获取一个单元格时,如果它有一个等于0
的标记,您可以将它设置为其他值。否则,您将收到一个重新使用的单元格。您还可以将第一个单元格的标记设置为1,然后将第二个单元格的标记设置为2,以此类推。这样,您还可以找到您使用的单元格数。您只需要跟踪到目前为止最大的标记
您还可以添加一些自定义属性,并以与标记相同的方式使用它
另一个选项是在调试器中打印单元格。正如@richtoley在上面的评论中所建议的那样。但在我看来,这不是很方便(手动比较指向每个单元格的指针)。最简单的方法是在单元格中为
cell.tag=indexPath.row+1设置一个标记(添加一个阻止设置默认0值的标记)并设置断点条件,如图所示。如果标记不同于0,则断点停止并在控制台上打印标记 如果您在调试器中打印单元格,它将提供单元格对象的地址,这将告诉您是否正在处理相同的对象。我在自定义单元格(在调试器中打印)的初始化中记录了该对象。我的屏幕上有15个单元格和16个日志。数据源包含大约30个单元格。那么重用应该有效吗?!谢谢大家!@Netzer,是的,似乎是这样:)如果滚动时日志中没有新记录,它就会工作。很高兴我能帮助你:请考虑接受/接受答案。(祝你有愉快的一天)