在UITableView中未使用allowMultipleSelectionDuringEditing在编辑模式下设置单元格

dan*_*n78 6 multiple-select uitableview ios

我有一个UITableView配置为允许在编辑模式下选择多个单元格.但是,在触摸/选择单元格后,左侧的空白色圆圈永远不会变为红色圆圈,并带有白色复选标记.

我已经阅读了有关删除问题的滑动allowsMultipleSelectionDuringEditing,因此我的setEditing:animinated方法如下所示:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    self.tableView.allowsMultipleSelectionDuringEditing = editing;
    [super setEditing:editing animated:animated];
}
Run Code Online (Sandbox Code Playgroud)

网上的一些资源建议设置allowsSelectionDuringEditing = NO;,但这没有任何效果.此外,我的单元格编辑样式设置为UITableViewCellEditingStyleDelete,并且更改它也没有任何效果.

当在编辑模式中触摸行时,tableView:didSelectRowForIndexpath:会触发,但如上所述,UI不会反映这一点.

dan*_*n78 24

事实上,我的错误就是如此.

问题出在我的实现中tableView:cellForRowAtIndexPath:,我将单元格的selectionStyle属性设置为UITableViewCellSelectionStyleNone.出于某种原因,这增加了在多选编辑模式下禁用左侧红色复选标记的"好处".

设置cell.selectionStyle = UITableViewCellSelectionStyleGray;修复了问题.

  • 感谢2018年.终于找到了这个答案并解决了我的问题! (3认同)