Jak utworzyć NSIndexPath dla TableView


243

Potrzebuję usunąć wiersz 1 tabeli w funkcji, którą zdefiniowałem. Aby użyć deleteRowAtIndexPath, musisz użyć IndexPathze zdefiniowaną sekcją i wierszem. Jak mogę utworzyć ścieżkę indeksu w ten sposób?

Tablica z int {1} jako jedynym członkiem ulegnie awarii; komunikat NSLog stwierdza, że ​​sekcja również musi zostać zdefiniowana.

* Edycja -> Kod dotyczący usuwania komórki:

    NSIndexPath *myIP = [[NSIndexPath alloc] indexPathForRow:0 inSection:0];
    NSArray *myArray = [[NSArray alloc] initWithObjects:myIP, nil];
//  [self.tableView beginUpdates];
    [self.tableView deleteRowsAtIndexPaths:myArray withRowAnimation:UITableViewRowAnimationFade];
//  [self.tableView endUpdates];

Odpowiedzi:


646

Służy [NSIndexPath indexPathForRow:inSection:]do szybkiego tworzenia ścieżki indeksu.

Edycja: W Swift 3:

let indexPath = IndexPath(row: rowIndex, section: sectionIndex)

Szybki 5

IndexPath(row: 0, section: 0)

118

indexPathForRow jest metodą klasową!

Kod powinien brzmieć:

NSIndexPath *myIP = [NSIndexPath indexPathForRow:0 inSection:0] ;

18

Obowiązkowa odpowiedź w Swift: NSIndexPath(forRow:row, inSection: section)

Zauważysz, że NSIndexPath.indexPathForRow(row, inSection: section)nie jest dostępny w trybie szybkim i musisz użyć pierwszej metody do zbudowania indexPath.


17

W przypadku Swift 3 jest teraz: IndexPath(row: rowIndex, section: sectionIndex)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.