Tengo curiosidad si es posible interceptar los métodos predeterminados del modo 'Editar' en una UITableView. Normalmente, obtienes un botón de 'eliminar' sin cargo si deslizas lateralmente una UITableViewCell que tiene métodos de delegado asociados. Me gustaría cambiar la eliminación a algún otro selector arbitrario. En lugar de eliminar la celda, me gustaría ejecutar un diálogo de alerta hello mundo. ¿Hay algo en esta medida posible?UITableView, interceptando el modo de edición
Respuesta
Existe una propiedad en UITableViewCell llamada editAction
que está documentada como que le permite cambiar la acción utilizada para la inserción o eliminación en celdas individuales (también utiliza la propiedad de la celda target
). No lo he probado, pero parece que podría hacer lo que quieras.
Implementaría una subclase de UITableViewCell y manejaría eventos táctiles allí. Es probable que tenga que hacer todo el material de animación usted mismo, pero creo que es probablemente la solución más fácil. No hay un método "Compatible" para cambiar el botón Eliminar, no creo
La edición se implementa como un método en el objeto delegado de UITableView. En el controlador de mesa, tiene todo lo de control activa la llamada edición de este:
[tableView setEditing: YES animated: YES];
A continuación, asegúrese de que su objeto delegado implementa esto:
- (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];
}
}
... o una acción más estándar podría ser:
[itemList removeObjectAtIndex:indexPath.row];
[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
El problema es qué hacer cuando el usuario hace clic en "cancelar". Lo único que he hecho que parece medio bien es 'reloadRowsAtIndexPaths' para deshacerse del botón Eliminar. –
+1 para mensaje: @ "¿Realmente desea eliminar" George W. Bush "?" ;) – Devarshi
@JFMartin y Marco - para reemplazar el botón estándar 'Eliminar', utilice el siguiente método delegado de UITableview
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
- 1. Modo de edición de UITableView no funciona
- 2. UITableView Modo de edición Mostrar botones personalizados
- 3. Cómo detectar el modo de edición en el iPhone UITableView
- 4. ¿Cómo detectar que UITableView está en modo de edición?
- 5. UITableView modo de selección por celda durante la edición
- 6. Seleccionar fila mientras UITableView está en modo de edición
- 7. UITableView didSelectRow durante la edición?
- 8. Salir del modo de edición
- 9. UITableView en modo de edición - El botón 'Editar' no cambia el estado
- 10. iPhone: poner solo una sección de UITableView en el modo de edición
- 11. ¿Cómo desactivar el modo de edición en UITableView cuando no hay más celdas para eliminar?
- 12. UITableView inhabilitar deslizar para eliminar, pero todavía tiene eliminar en el modo de edición?
- 13. UITableView - ¿Mejor edición mediante enlace?
- 14. La edición directa de células UITableView
- 15. ¿Cómo seleccionar filas mientras está en modo de edición?
- 16. ¿Reordenar controles en UITableView mientras no está en modo de edición?
- 17. UITableView agregar/eliminar secciones mientras no está en modo de edición?
- 18. Node.js interceptando process.exit
- 19. ¿Webpart está en modo de edición?
- 20. CellEditingTemplate de DataGrid y enfoque en el modo de edición
- 21. ¿Cómo mostrar el indicador de divulgación mientras las celdas están en modo de edición?
- 22. ¿Indicador bash diferente para el modo de edición vi diferente?
- 23. ComboBox en DatagridView en el modo de edición
- 24. Sin modo de edición en el portlet Liferay
- 25. ASP GridView Todas las Filas En el Modo de Edición
- 26. Cómo deshabilitar el modo de edición en QTableView?
- 27. Seleccionar una UITableViewCell en el modo de edición
- 28. deslizar para eliminar cuando ya esté en el modo de edición
- 29. En UITableViewCell ¿cómo puedo revertir el modo de confirmación de eliminación al modo de edición normal?
- 30. Cómo establecer un ícono de estilo de edición personalizado en una UITableViewCell mientras está en modo de edición
Esta característica ha quedado obsoleta a partir de iOS 3.0. –