Quiero algo similar a la aplicación Alarm, donde no puede deslizar el dedo para eliminar la fila, pero aún puede eliminar la fila en el modo de edición.
Cuando se comentó tableView: commitEditingStyle: forRowAtIndexPath :, desactivé el deslizamiento para eliminar y todavía tenía el botón Eliminar en el modo de edición, pero ¿qué sucede cuando presiono el botón Eliminar? ¿Qué se llama?
ios
cocoa-touch
uitableview
uikit
Willi
fuente
fuente
Solo para aclarar las cosas, deslizar para eliminar no se habilitará a menos que
tableView:commitEditingStyle:forRowAtIndexPath:
se implemente.Mientras estaba en desarrollo, no lo implementé y, por lo tanto, deslizar para eliminar no estaba habilitado. Por supuesto, en una aplicación terminada, siempre se implementaría, porque de lo contrario no habría edición.
fuente
Versión rápida:
fuente
Necesita implementar la función CanEditRowAt.
Puede devolver .delete en la función EditingStyleForRowAt para que aún pueda eliminar en el modo de edición.
fuente
Básicamente, habilitas o deshabilitas la edición usando los métodos
Si la edición está habilitada, aparece el icono de eliminación rojo y se solicita al usuario una confirmación de eliminación. Si el usuario confirma, el método delegado
es notificado de la solicitud de eliminación. Si implementa este método, deslizar para eliminar se activa automáticamente. Si no implementa este método, deslizar para eliminar no está activo, sin embargo, no puede eliminar la fila. Por lo tanto, a mi leal saber y entender, no puede lograr lo que solicitó, a menos que utilice algunas API privadas no documentadas. Probablemente así es como se implementa la aplicación de Apple.
fuente
En C #:
Tuve el mismo problema en el que se necesitaba habilitar / deshabilitar filas con la opción Eliminar al deslizar. Es necesario deslizar varias filas hacia la izquierda y eliminarlas, manténgalas en otro color. Logré usando esta lógica.
Tenga en cuenta que los DeleteIndexes son una lista de índices que se eliminan de la tabla sin duplicados. Este código verifica si se elimina una fila, luego deshabilita el deslizamiento o viceversa.
La función de delegado equivalente es Swift is
canEditRowAtIndexPath
.fuente
Me encontré con este problema y lo solucioné con los códigos a continuación. Espero que te ayude.
}
fuente