2012-08-08 53 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