2012-05-17 5 views
5

Ho una vista che contiene UITableView. Sono in grado di mostrare il pulsante Elimina sulla cella quando l'utente scorre.Come rilevare se il pulsante di cancellazione UItableviewcell è stato nascosto?

Se l'utente tocca il pulsante Elimina, verrà attivato un metodo (funziona correttamente). Ma se l'utente decide di non cancellare la cella e tocca qualsiasi punto della vista per nascondere il pulsante Elimina.

Come posso rilevare quello?

risposta

3

Quando l'utente tocca al di fuori del contrassegno di eliminazione in una cella, il programma dovrebbe ricevere una chiamata per tableView:didEndEditingRowAtIndexPath: sul delegato vista tabella.

+0

Works. Grazie :) – Kassem

+0

Questo non sembra funzionare dalla modalità di modifica. –

3

[UITableViewCell showingDeleteConfirmation]

o

[UITableViewCell willTransitionToState:] con UITableViewCellStateShowingDeleteConfirmationMask come parametro di

1

Nella sottoclasse UITableViewCell implementare il metodo willTransitionToState :. Questo metodo viene invocato da UITableView quando la cella viene trasferita da/verso lo stato di modifica.

Nell'implementazione della classe è necessario controllare in modo condizionale il valore del parametro maschera passato nel metodo per determinare lo stato di transizione della cella da/verso. I valori possibili per la maschera sono ...

enum { 
    UITableViewCellStateDefaultMask      = 0, 
    UITableViewCellStateShowingEditControlMask   = 1 << 0, 
    UITableViewCellStateShowingDeleteConfirmationMask = 1 << 1 
}; 

Nel tuo caso si vuole guardare per le transizioni al UITableViewCellStateDefaultMask modo l'implementazione sarà il seguente ...

- (void)willTransitionToState:(UITableViewCellStateMask)state { 
    if (state == UITableViewCellStateDefaultMask) { 
     // User has switched back to default state... 
     // ... 
    } 
} 
Problemi correlati