相关疑难解决方法(0)

TableView单元重用和不需要的检查标记 - 这让我感到害怕


Apple的iOS TableView和细胞重用正在扼杀我.我搜索,搜索和研究,但找不到好的文档或好的答案.问题是当TableView重新使用单元格时,在表格视图的下方单元格中重复设置在所选单元格上的Checkmarks(单元格附件)之类的内容.我知道细胞重用是由于内存限制而设计的,但是如果你有一个包含50个项目的列表,并且它开始在不需要它们的地方设置额外的复选标记,这使整个努力变得毫无用处.

我想要做的就是在我选择的单元格上设置复选标记.我已经尝试使用我自己的自定义单元类,以及由锅炉板TableView类生成的标准单元格,但它总是最终相同.

Apple甚至还有一个名为TouchCell的示例项目,您可以从开发中心下载,该项目应该显示使用左侧带有图像控件的自定义单元格设置复选标记的不同方式.该项目使用字典对象作为数据源而不是可静音数组,因此对于每个项目都有一个字符串值和bool检查值.此bool检查值应设置复选标记,以便它可以跟踪所选项目.只要使用15个以上的单元格填充TableView,此示例项目也会显示此愚蠢行为.单元格的重用开始设置不需要的复选标记.

我甚至尝试过为每个细胞使用一个真正独特的细胞标识符.因此,不是每个单元格都有@"Acell"之类的东西,我使用静态int,强制转换为字符串,以便细胞得到@"cell1",@"cell2"等.在测试期间,我可以看到数百个新细胞在哪里滚动期间生成,即使表只有30个项目.

它确实修复了复选标记重复问题,但我怀疑内存使用率过高.

当它们滚动回视图时,好像当前不在表的可视区域中的单元格会再次创建.

有没有人想出一个优雅的解决方案来解决这种恼人的行为?

reusability uitableview checkmark

11
推荐指数
1
解决办法
4652
查看次数

标签 统计

checkmark ×1

reusability ×1

uitableview ×1