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.

Antworten:


216
NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];

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;
    }
}

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];

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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.