2

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

谢谢。

4

4 回答 4

2

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

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

}
于 2013-01-29T20:30:32.393 回答
0

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

于 2013-01-29T19:51:45.150 回答
0

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

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

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

于 2013-01-29T19:58:03.607 回答
0

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

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

于 2020-07-31T04:42:42.517 回答