我有一个 UITableView 显示通讯录中的联系人。我启用了多选编辑样式。当我展示 tableView 时,它按预期工作。用户点击一行,单元格左侧的红色复选标记就会填充。太好了。
我将这些选择保存在呈现视图控制器的数组属性中。当我再次显示我的表格时,我希望这些单元格保持选中状态(即,不是蓝色突出显示,只是红色复选标记仍然填充)。在 cellForRowAtIndexPath: 我得到那个索引路径的单元格的对象,测试当前视图控制器的数组是否包含那个对象,如果是的话[cell setSelected:YES];
在我看来,这应该导致与用户触摸单元格时相同的选定外观(只是红色复选标记)。取而代之的是,红色的勾号确实会填满,但单元格也会暂时突出显示蓝色,并且文本会永久变为白色,给人的印象是联系人的名字已经消失了。如果有帮助,我很乐意发布代码,但这似乎只是 UITableView 的一个怪癖,有人可能熟悉吗?编辑:这张图片显示了我拥有(和想要)的那种复选标记。我无法拼凑,但为什么当我调用 [cell setSelected:YES]; 它的行为与响应触摸时的行为不同。你在这里看到的是在我调用 [cell setSelected:YES]; 之后。它看起来几乎是我想要的,但名字已经消失了。我不