Ausgewählten Index von UITableView abrufen

104

Ich möchte einen Index für ausgewählt haben UITableView. Ich habe folgenden Code geschrieben:

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

Dies funktioniert immer für den 1. Artikel. Ich möchte Index in ausgewählt habenindexPathForRow.

Bitte helfen Sie. Vielen Dank.

iOSDev
quelle

Antworten:

216
NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];
Chris Gummer
quelle
5
Wenn Sie Mehrfachauswahl zulassen, sollten Sie Folgendes in Betracht ziehen: - (NSArray *) indexPathsForSelectedRows
yura
Sobald Sie das haben, ist *selectedIndexPathes für mich nützlich, Zugriff zu haben long pathRow = [selectedIndexPath row];und long pathSection = [selectedIndexPath section];wenn Sie eine bestimmte Auswahl benötigen (beachten Sie, dass NSIntegereine typedef long, die aus einem C-Hintergrund stammt, sinnvoller ist, da beide %ldsowieso benötigen .
Jonathan Weinraub
8

Aktuell ausgewählte Zeile abrufen. Kann hilfreich sein, wenn Sie nur einen Abschnitt haben.

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

Verwenden Sie diesen Code

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

Legen Sie in didSelectRowAtIndexPath eine als NSIndexPath deklarierte Schnittstelle als zurückgegebenen Indexpfad fest. Dann können Sie zu dieser Variablen scrollen. Wenn Sie Hilfe benötigen, kommentieren Sie und ich kann einen Beispielcode geben.

Kolin Krewinkel
quelle
Alternativ können Sie die Methode von Chris für eine schnellere Verwendung verwenden. Die obige Methode bietet mehr Kontrolle und kann von Ihrem (Beispiel-) Detailansichts-Controller geändert werden.
Kolin Krewinkel
1

Swift 4.2

let selectedIndexPath = tableView.indexPathForSelectedRow

Dies ist ein optionaler Rückgabewert.

Davidrynn
quelle