2012-05-17 11 views
5

Tengo una vista que contiene una UITableView. Puedo mostrar el botón Eliminar en la celda cuando el usuario se desliza.Cómo detectar si el botón eliminar UItableviewcell estaba oculto?

Si el usuario toca el botón Eliminar, se activará un método (esto funciona bien). Pero si el usuario decide no eliminar la celda y toca en cualquier parte de la vista para ocultar el botón Eliminar.

¿Cómo puedo detectar eso?

Respuesta

3

Cuando el usuario pulsa fuera de la marca de eliminación en una celda, su programa debe recibir una llamada a tableView:didEndEditingRowAtIndexPath: en la vista de tabla delegado.

+0

Works. Gracias :) – Kassem

+0

Esto no parece funcionar desde el modo de edición. –

3

[UITableViewCell showingDeleteConfirmation]

o

[UITableViewCell willTransitionToState:] con UITableViewCellStateShowingDeleteConfirmationMask como parámetro

1

En su subclase UITableViewCell implementar el método willTransitionToState :. Este método es invocado por UITableView cuando la celda se está transfiriendo a/desde el estado de edición.

En su implementación de la clase, deberá verificar condicionalmente el valor del parámetro de máscara pasado al método para determinar en qué estado está pasando la transición de la celda. Los valores posibles para la máscara son ...

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

En su caso, usted tendrá que mirar para las transiciones a la UITableViewCellStateDefaultMask por lo que su implementación será de la siguiente manera ...

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