TableView için NSIndexPath nasıl oluşturulur


243

Tanımladığım bir fonksiyonda bir tablonun 1. satırını silmem gerekiyor. Kullanmak için deleteRowAtIndexPathbir kullanmalıdır sizi IndexPathtanımlanan bir bölümü ve sıra ile. Nasıl böyle bir indeks yolu oluşturabilirim?

İnt {1} 'i tek üyesi olarak içeren bir dizi çökecektir; NSLog mesajı, bölümün de tanımlanması gerektiğini belirtir.

* Düzenle -> Hücre silme ile ilgili kod:

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

Yanıtlar:


646

[NSIndexPath indexPathForRow:inSection:]Hızla bir dizin yolu oluşturmak için kullanın .

Düzenleme: Swift 3'te:

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

Hızlı 5

IndexPath(row: 0, section: 0)

118

indexPathForRow bir sınıf yöntemidir!

Kod şöyle olmalıdır:

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

18

Swift'te zorunlu cevap: NSIndexPath(forRow:row, inSection: section)

NSIndexPath.indexPathForRow(row, inSection: section)Hızlı kullanılamadığını fark edeceksiniz ve indexPath'i oluşturmak için ilk yöntemi kullanmanız gerekir.


17

Swift 3 için şimdi: IndexPath(row: rowIndex, section: sectionIndex)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.