2012-08-08 46 views
2

我正在寻找各种可能的方法来实现UITableViewUITableViewCell元素上的删除编辑复制功能。如何使用commitEditingStyle? (UITableViewCell-UITableView)

的一个,现在我想是基于以下方法的用法:

 [tableView setEditing:YES animated:YES]; 

     - (void)tableView:(UITableView *)tableView 
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
    forRowAtIndexPath:(NSIndexPath *)indexPath; 

我可以看到一些优势,使用这种方法,但有一个问题:

当我尝试它,我可以使红色的“删除”按钮出现和工作,但就是这样。

是否有一个机制,我也可以有“编辑”和“复制”按钮? 还是只是不可能?

感谢您提供任何有用的信息。

回答

3

编辑

我明白你指的是电池,而不是TableView中。对于电池,提供了以下样式:

  • UITableViewCellEditingStyleDelete: 细胞具有删除编辑控制;这个控件是一个包围减号的红色圆圈。
  • UITableViewCellEditingStyleInsert: 该单元格具有插入编辑控件;这个控件是一个封闭加号的绿色圆圈。您可以将其用于“复制”。
  • UITableViewCellEditingStyleNone:单元格没有编辑控件。

您必须自行实施其他样式。

原来的答案

您可以使用UIViewControllereditButtonItem方法。它返回一个条形按钮项目,在“编辑”和“完成”(但不是“复制”)之间切换其标题和关联状态。默认的按钮操作已经调用了setEditing:animated:方法。

如果你想要另一个状态,你必须创建自己的BarButtonItem。

+0

谢谢。听起来很有趣。我想更深入地研究它。 – Michel 2012-08-09 06:33:47

1
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     [DummyData removeObjectAtIndex:indexPath.row]; 
     [_tableView reloadData]; 
    }  
} 

使用此代码。希望它可以帮助,请做与一样的UITableViewCellEditingStyleInsert