2012-12-02 18 views
7

Ho la funzionalità per "Scorri per eliminare" il TableViewCell. Voglio personalizzare il pulsante Elimina. enter image description herePersonalizza il pulsante Elimina in UITableView

E 'possibile e come accedere al pulsante Elimina?

+1

provare questi http://stackoverflow.com/q/8603431/194544 http://stackoverflow.com/q/1615469/194544 – beryllium

+0

@beryllium in modo che il consiglio sarebbe quello di creare una cella personalizzato? Ma ho già costruito la cella, preferirei impostare un riconoscitore di gesti e quindi renderlo come una cella personalizzata. – Spire

+0

Si desidera un'azione per il pulsante Elimina o è necessario modificare il pulsante Elimina –

risposta

6

Questo metodo verrà chiamato quando l'utente esegue l'azione magnetica

Basta posizionare questo nella vostra CustomCell

- (void)willTransitionToState:(UITableViewCellStateMask)state 
    { 
     [super willTransitionToState:state]; 
     if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask) 
     { 
      for (UIView *subview in self.subviews) 
      { 
       if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) 
       { 
        UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 64, 33)]; 
        [deleteBtn setImage:[UIImage imageNamed:@"arrow_left_s11.png"]]; 
        [[subview.subviews objectAtIndex:0] addSubview:deleteBtn]; 
       } 
      } 
     } 
    } 

Non si dovrebbe provalo, non dovresti alterare il valore predefinito di Apple visualizzazioni .

+0

Ho trovato un altro modo per eliminare, ma grazie per il vostro impegno. Sarò educato su questo come ne avrò bisogno per altri progetti. thx ** Una cosa, non uso cella personalizzata, ecco perché avevo bisogno di informazioni su come modificare l'aspetto DELETE, per apparire come il pulsante Nudge ** – Spire

+0

è scritto chiaramente nella domanda – Spire

+7

non funziona in iOS 7 – Kiddo

-1

Prova questo:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    { 
    // Your Code 
    } 
} 
+0

Ok, e come chiamare il pulsante Elimina qui nella sezione "// Codice"? Come posso cambiarlo in 'UIButtonTypeCustom'? – Spire

+0

Questa funzione è incorporata in Tabella, quindi puoi fare tutto ciò che vuoi, ad esempio rimuovere il valore dall'array per e.g.- [idArray removeObjectAtIndex: indexPath.row]; dove idArray è NSMutableArray con ID. Alla fine basta ricaricare il Table chiamando [tableView reloaddata]; dove tableView è il nome del tuo tavolo. –

+0

Ho modificato il mio commento – Spire

12

Se è sufficiente modificare il titolo del pulsante, è sufficiente aggiungere il metodo titleForDeleteConfirmationButtonForRowAtIndexPath.

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return @"NewButtonName"; 
} 
+0

è un ottimo lavoro per me:) grazie! – slboat

Problemi correlati