UITableView状态持久性中的复选框

问题描述 投票:0回答:1

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

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

swift uitableview checkbox uiscrollview
1个回答
1
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.