Cara membuat NSIndexPath untuk TableView


243

Saya perlu menghapus baris 1 tabel dalam fungsi yang telah saya tentukan. Untuk menggunakan, deleteRowAtIndexPathAnda harus menggunakan IndexPathdengan bagian dan baris yang ditentukan. Bagaimana saya bisa membuat jalur indeks seperti ini?

Array dengan int {1} sebagai satu-satunya anggotanya akan macet; pesan NSLog menyatakan bahwa bagian tersebut juga harus didefinisikan.

* Edit -> Kode yang berkaitan dengan penghapusan sel:

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

Jawaban:


646

Gunakan [NSIndexPath indexPathForRow:inSection:]untuk membuat jalur indeks dengan cepat.

Sunting: Dalam Swift 3:

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

Cepat 5

IndexPath(row: 0, section: 0)

118

indexPathForRow adalah metode kelas!

Kode harus dibaca:

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

18

Jawaban wajib di Swift: NSIndexPath(forRow:row, inSection: section)

Anda akan melihat bahwa NSIndexPath.indexPathForRow(row, inSection: section)itu tidak tersedia dalam cepat dan Anda harus menggunakan metode pertama untuk membangun indexPath.


17

Untuk Swift 3 sekarang: IndexPath(row: rowIndex, section: sectionIndex)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.