如何知道在编辑模式下是否取消选择UITableViewCell

时间:2013-01-29 19:38:03

标签: ios uitableview editing

我有一个tableview,支持编辑删除。如果处于编辑模式,Tableview支持多选。我想根据所选的单元格数启用或禁用删除按钮。如果选择了至少一个单元格,我将启用删除按钮,否则不启用。类似于iPhone邮件应用程序。 当我选择一个单元格时,在编辑模式下调用didSelectRowMethod并启用删除按钮。但是,如果我再次点击选定的单元格以取消选择,则不会调用didSelectRow。所以我无法禁用删除按钮。如果在编辑模式中取消选择单元格,您是否知道如何知道以及在何处获得控制权?

感谢。

4 个答案:

答案 0 :(得分:2)

在这里如何检查它是否处于编辑模式时不要忘记设置tableview.delegate=self;

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
      if ([tableView isEditing]) {
                 NSLog(@"tableview is editing");      
            }else{
                 NSLog(@"tableview is not editing");   
              }

}

答案 1 :(得分:0)

来自文档:
选择
一个布尔值,指示是否选择了单元格 @property(非原子,getter = isSelected)BOOL被选中
讨论
选择会影响标签,图像和背景的外观。当单元格的选定状态设置为YES时,它将绘制所选单元格的背景,其标题为白色。默认值为NO。如果通过此属性将选择状态设置为YES,则不会设置到新状态外观的过渡。有关动画选定状态转换,请参阅setSelected:animated :(第26页)方法。

答案 2 :(得分:0)

回答我自己的问题。我发现在UITableview上有一个名为 -

的委托方法
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath

在这种方法中,取消选择是可以知道的。

答案 3 :(得分:0)

当表处于编辑模式时,请实现 didDeselectRowAt indexPath:委托方法,因为didSelectRowAt不能取消选择

func tableView(_ tableView:UITableView,didDeselectRowAt indexPath:IndexPath){ }