【问题标题】:Checkboxes in UITableView State PersistenceUITableView 状态持久化中的复选框
【发布时间】:2018-09-13 13:41:48
【问题描述】:

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

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

【问题讨论】:

标签: swift uitableview checkbox uiscrollview


【解决方案1】:

将表格视图单元视为您在医生办公室的候诊室获得的患者信息表格。问题是医生办公室会重复使用这些表格,并且不会删除其中的旧信息。

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

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

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

【讨论】:

  • 我忘记关闭未选中的。您可以使用默认状态。
猜你喜欢
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
  • 2022-11-07
相关资源
最近更新 更多