【问题标题】:How to know if UITableViewCell is deselected in editing mode如何知道 UITableViewCell 是否在编辑模式下被取消选择
【发布时间】:2013-01-29 19:38:03
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: ios uitableview editing


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      来自文档:
      已选择
      一个布尔值,指示单元格是否被选中。
      @property(nonatomic, getter=isSelected) BOOL 已选择
      讨论
      选择会影响标签、图像和背景的外观。当单元格的选定状态设置为“是”时,它将为选定单元格绘制背景,其标题为白色。默认值为 NO。如果您通过此属性将选择状态设置为 YES,则不会对新状态外观的转换进行动画处理。对于动画选择状态转换,请参阅 setSelected:animated: (page 26) 方法。

      【讨论】:

        【解决方案3】:

        回答我自己的问题。我发现 UITableview 上有一个委托方法叫做 -

        - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
        

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

        【讨论】:

          【解决方案4】:

          请在表格处于编辑模式时实现didDeselectRowAt indexPath:委托方法,因为didSelectRowAt在取消选择时不起作用

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-10-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-10-18
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多