iphone - Obteniendo la ruta de índice de la celda en el gesto deslizable UITableView
objective-c ios (3)
¿Has verificado este código fuente? : https://github.com/thermogl/TISwipeableTableView
Eso realmente podría ayudarlo, esta es una implementación completa de una vista de tabla "deslizable" ...
Estoy haciendo un gesto de deslizamiento en UITableView
y quiero saber el camino de índice de la celda en la que mis dedos están actualmente, es decir, deslizar el gesto realizado desde esa celda.
indexPath
ya que tengo que mostrar información para esa celda seleccionada.
Gracias por adelantado..
Si está intentando implementar ''deslizar para eliminar'' (deslizar en la dirección horizontal), no necesita volver a inventar la rueda. Simplemente commitEditingStyle:forRowAtIndexPath:
el comentario del método commitEditingStyle:forRowAtIndexPath:
en su delegado UITableViewController
.
Entonces, ¿qué es lo que necesitas esencialmente para obtener la celda del gesto de deslizar sobre la mesa? Correcto. No necesitas conocer el indexPath
. Primero defina deslizar en la vista de tableView
como tal -
UISwipeGestureRecognizer *showExtrasSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(cellSwipe:)];
showExtrasSwipe.direction = UISwipeGestureRecognizerDirectionRight;
[tableView addGestureRecognizer:showExtrasSwipe];
[showExtrasSwipe release];
Después de esto, cuando pase el deslizamiento real, debe colocarle un controlador. Para eso prueba esto-
-(void)cellSwipe:(UISwipeGestureRecognizer *)gesture
{
CGPoint location = [gesture locationInView:tableView];
NSIndexPath *swipedIndexPath = [tableView indexPathForRowAtPoint:location];
UITableViewCell *swipedCell = [tableView cellForRowAtIndexPath:swipedIndexPath];
//Your own code...
}
Entonces, lo que hemos hecho es conectar primero un SwipeGestureRecognizer
a UITableView
(no a UITableViewCell
). Después de eso, cuando el deslizamiento ocurre en UITableView
, primero obtengo las coordenadas de donde ocurrió el gesto en UITableView
. A continuación, usando estas coordenadas, obtengo el IndexPath
de la fila donde ocurrió el deslizamiento en UITableView
. Finalmente, utilizando IndexPath
obtengo el UITableViewCell
. Simple realmente ...
Nota: me han preguntado esto muchas veces. Así que SwipeGestureRecognizer
esta explicación de por qué utilicé SwipeGestureRecognizer
en UITableView
y no en cada UITableViewCell
individual.
Podría haber adjuntado SwipeGestureRecognizer
a cada UITableViewCell
. No hice eso ya que tendría que adjuntar un SwipeGestureRecognizer
por separado para cada celda. Entonces, si tuviera 1000 celdas en mi UITableView
, habría tenido que crear 1000 objetos SwipeGestureRecognizer
. Esto no está bien. En mi enfoque anterior solo creo un SwipeGestureRecognizer
y eso es todo.