UITableView, intercepting Edit mode

后端 未结 4 936
-上瘾入骨i
-上瘾入骨i 2021-02-13 13:59

I\'m curious if it\'s possible to intercept the default methods of \'Edit\' mode on a UITableView. Typically you get a free \'delete\' button if you side swipe a UITableViewCell

相关标签:
4条回答
  • 2021-02-13 14:45

    @JFMartin and Marco - to replace the standard 'Delete' button use the following UITableview delegate method

    - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
    
    0 讨论(0)
  • 2021-02-13 14:52

    Editing is implemented as a method on your UITableView’s delegate object. In your table controller, have whatever control activates editing call this:

    [tableView setEditing: YES animated: YES];
    

    Then, make sure that your delegate object implements this:

    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
        if (editingStyle == UITableViewCellEditingStyleDelete) {
                UIAlertView *alert = [[UIAlertView alloc] 
                    initWithTitle: @"Delete" 
                    message: @"Do you really want to delete “George W. Bush”?" 
                    delegate: self
                    cancelButtonTitle: @"Cancel"
                    otherButtonTitles: @"Of course!", nil];
        }
    }
    

    …or a more standard action might be:

    [itemList removeObjectAtIndex:indexPath.row];
    [table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
    
    0 讨论(0)
  • 2021-02-13 14:58

    I would implement a subclass of UITableViewCell and handle touch events in there. You would likely have to do all the animation stuff yourself, but I think it's probably the easiest solution. There's not a "Supported" method for changing the delete button, I don't think

    0 讨论(0)
  • 2021-02-13 15:01

    There is a property on UITableViewCell called editAction which is documented as letting you change the action used for insertion or deletion on individual cells (it uses the cell's target property too). I haven't tested it, but this sounds like it might do what you want.

    0 讨论(0)
提交回复
热议问题