UITableView状态持久性中的复选框

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITableView状态持久性中的复选框相关的知识,希望对你有一定的参考价值。

所以我有一个包含选项单元格的表格,每个选项单元格都有一个BEMCheckbox库提供的绑定标签和复选框。一切正常,但是,当我选择让我们说前三个选项并向下滚动时,我发现其他三个相邻的单元格已被选中,即使我还没有遇到它们。

我知道这与UITableView的内部工作方式有关,以及单元格在滚动时基本上如何重复使用和重新渲染,但是我没有尝试保持状态似乎正在起作用。目前我正在尝试将选定的IndexPath对象存储在数组中,而在cellForRowAt中,如果路径出现在数组中,我将绘制复选框。然而,即使这似乎也不起作用。任何想法如何解决它?

答案

可以将桌面视图单元格视为您在医生办公室等候室中获得的患者信息表格。问题是医生的办公室重复使用表格,并且不会删除他们的旧信息。

在您的cellForRowAt方法中,您可以在再次使用它之前将单元格完全恢复到其默认状态。您必须将所有内容重置为默认状态。

作为在cellForRowAt中重置的替代方法,您可以使用自定义单元格并实现prepareForReuse()方法。

关键是在开始配置之前,需要将单元格中的每个视图强制为其默认状态。

以上是关于UITableView状态持久性中的复选框的主要内容,如果未能解决你的问题,请参考以下文章

片段中的Firebase数据不是持久的,会重新下载

UITableView 中的 NSUserDefaults 和持久性

在 ViewPager 中使用 android:onclick

如果存在数据,如何在复选框上创建持久功能

iOS UITableView 移除单元格选中时的高亮状态

滚动会弄乱 UITableView 中的自定义单元格