我有一个UITableView配置为允许在编辑模式下选择多个单元格.但是,在触摸/选择单元格后,左侧的空白色圆圈永远不会变为红色圆圈,并带有白色复选标记.
我已经阅读了关于使用allowsMultipleSelectionDuringEditing删除滑动问题,因此我的setEditing:animinated方法如下所示:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated { self.tableView.allowsMultipleSelectionDuringEditing = editing; [super setEditing:editing animated:animated]; }
网上的一些资源建议设置allowSelectionDuringEditing = NO;,但这没有任何效果.此外,我的单元格编辑样式设置为UITableViewCellEditingStyleDelete,并且更改它也没有任何效果.
在编辑模式下触摸行时,会触发tableView:didSelectRowForIndexpath:,但如上所述,UI不会反映这一点.
解决方法
事实上,我的错误就是如此.
问题出在我的tableView:cellForRowAtIndexPath:的实现中,我将单元格的selectionStyle属性设置为UITableViewCellSelectionStyleNone.出于某种原因,这增加了在多选编辑模式下禁用左侧红色复选标记的“好处”.
设置cell.selectionStyle = UITableViewCellSelectionStyleGray;解决了这个问题.