2009-09-03 23 views
10

Tengo una aplicación iphone con uitableview donde me gustaría que los controles de "reordenar" siempre se muestren, y hago que el usuario deslice para eliminar filas.deslizar para eliminar cuando ya esté en el modo de edición

El enfoque que actualmente estoy tomando es poner el tableview en modo de edición y permitir la selección en el modo de edición

self.tableView.editing = YES; 
self.tableView.allowsSelectionDuringEditing = YES; 

entonces oculto la roja eliminar los círculos usando

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return UITableViewCellEditingStyleNone; 
} 

- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return NO; 
} 

No puedo entender ¿Cómo puedo obtener el gesto deslizar para que aparezca el "eliminar" en el lado derecho cuando la vista de tabla ya está en modo de edición, ¿alguien me puede indicar la dirección correcta?

alternativamente, si alguien sabe cómo conseguir la celda de reordenación de los controles para mostrar cuando no está en modo de edición, que también sería una solución viable

aplausos

+1

Solo he pensado que añadiría que he investigado mucho * sobre este tema (tengo exactamente el mismo requisito) y no creo que sea posible sin implementar su propia lógica de deslizamiento. Tampoco creo que sea posible mostrar los controles de reorden en el modo sin edición sin duplicar de manera similar gran parte de la lógica de Apple. –

+0

¿Has hecho esto? – AnjDenny

Respuesta

1

Cuando el usuario pasa en una fila determinada, se necesita almacenar una referencia en algún lugar para que pueda cambiar el valor devuelto por editingStyleForRowAtIndexPath y shouldIndentWhileEditingRowAtIndexPath. Es probable que su mejor opción sea usar indexPathForCell en la celda que está seccionada y almacenar eso. Luego, en los dos métodos de visualización anteriores, debe verificar si el NSIndexPath es el mismo o no (no estoy seguro de si serán el mismo puntero o si tendrá que comparar los valores de sección/fila - se requieren pruebas). Si coinciden, muestra el botón Eliminar.

Tenga en cuenta que puede necesitar llamar al reloadData en su tablaVer para que el efecto aparezca sin desplazarse y volver atrás.

1

Me pregunto si la forma en que se dirige ahora rompería las pautas de la interfaz humana, lo que daría como resultado que la aplicación no fuera aprobada.

No puedo ver por qué no puede capturar el gesto de deslizar y luego usarlo para "mostrar" los iconos rojos de eliminación (señal de stop) para la confirmación de eliminación?

Cuestiones relacionadas