Ottieni l'indice selezionato di UITableView


104

Voglio aver selezionato l'indice per UITableView. Ho scritto il seguente codice:

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

Funziona sempre per il primo elemento. Voglio aver selezionato l'indice inindexPathForRow.

Per favore aiuto. Grazie.

Risposte:


216
NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];

5
Se consenti più selezioni, considera l'utilizzo di: - (NSArray *) indexPathsForSelectedRows
yura

Una volta che hai quello *selectedIndexPathè utile per me avere accesso long pathRow = [selectedIndexPath row];e long pathSection = [selectedIndexPath section];quando hai bisogno di selezioni specifiche (nota che NSIntegerè un typedef longche proviene da uno sfondo in C ha più senso poiché entrambi hanno bisogno %ldcomunque.
Jonathan Weinraub

8

Ottieni la riga selezionata corrente. Può essere utile se hai solo una sezione.

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

5

Usa questo codice

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

In didSelectRowAtIndexPath, imposta un'interfaccia dichiarata NSIndexPath come indexpath restituito. Quindi puoi scorrere fino a quella variabile. Se hai bisogno di aiuto, commenta e posso fornire un codice di esempio.


In alternativa, puoi utilizzare il metodo di Chris per un utilizzo più rapido. Il metodo sopra offre un maggiore controllo e può essere modificato dal controller della visualizzazione dei dettagli (esempio).
Kolin Krewinkel,

1

Swift 4.2

let selectedIndexPath = tableView.indexPathForSelectedRow

che è un valore restituito opzionale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.