Obtener índice seleccionado de UITableView


104

Quiero tener el índice seleccionado para UITableView. He escrito el siguiente código:

NSIndexPath *index = [NSIndexPath indexPathForRow:1 inSection:0];
[tableView scrollToRowAtIndexPath:index 
                 atScrollPosition:UITableViewScrollPositionTop 
                         animated:YES];

Esto siempre funciona para el primer artículo. Quiero tener un índice seleccionado enindexPathForRow.

Por favor ayuda. Gracias.

Respuestas:


216
NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];

5
Si permite múltiples selecciones, considere usar: - (NSArray *) indexPathsForSelectedRows
yura

Una vez que lo tenga *selectedIndexPath, es útil para mí tener acceso long pathRow = [selectedIndexPath row];y long pathSection = [selectedIndexPath section];cuando necesite selecciones específicas (tenga en cuenta que NSIntegeres algo typedef longque proviene de un fondo C tiene más sentido ya que ambos necesitan de %ldtodos modos.)
Jonathan Weinraub

8

Obtiene la fila seleccionada actual. Puede ser útil si solo tiene una sección.

- (NSUInteger)currentSellectedRowIndex
{
    NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
    if (selectedIndexPath) {
        return selectedIndexPath.row;
    }
    else {
        return NSNotFound;
    }
}

5

Usa este código

CGPoint location =[sender locationInView:self.tableView];
NSIndexPath *swipedIndexPath = [self.tableView indexPathForRowAtPoint:location];
UITableViewCell *swipedCell  = [self.tableView cellForRowAtIndexPath:swipedIndexPath];
NSIndexPath *indexPath = [self.tableView indexPathForCell:swipedCell];

4

En didSelectRowAtIndexPath, configure una interfaz declarada NSIndexPath como la ruta de índice devuelta. Luego puede desplazarse a esa variable. Si necesita ayuda, comente y puedo darle un código de muestra.


Alternativamente, puede utilizar el método de Chris para un uso más rápido. El método anterior ofrece más control y puede ser modificado por su controlador de vista de detalles (ejemplo).
Kolin Krewinkel

1

Rápido 4.2

let selectedIndexPath = tableView.indexPathForSelectedRow

que es un valor de retorno opcional.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.