Dapatkan indeks yang Dipilih dari UITableView


104

Saya ingin memilih indeks untuk UITableView. Saya telah menulis kode berikut:

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

Ini selalu berhasil untuk item pertama. Saya ingin memilih indeks dalamindexPathForRow.

Tolong bantu. Terima kasih.

Jawaban:


216
NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];

5
Jika Anda mengizinkan beberapa pilihan, pertimbangkan untuk menggunakan: - (NSArray *) indexPathsForSelectedRows
yura

Setelah Anda memiliki *selectedIndexPathitu berguna bagi saya untuk memiliki akses ke long pathRow = [selectedIndexPath row];dan long pathSection = [selectedIndexPath section];ketika Anda membutuhkan pilihan tertentu (catatan bahwa NSIntegeradalah typedef longyang datang dari latar belakang C lebih masuk akal karena keduanya perlu %ldpula.
Jonathan Weinraub

8

Dapatkan baris yang dipilih saat ini. Semoga bermanfaat jika Anda hanya memiliki satu bagian.

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

5

Gunakan kode ini

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

Di didSelectRowAtIndexPath, setel antarmuka yang dideklarasikan NSIndexPath saat jalur indeks dikembalikan. Kemudian Anda dapat menggulir ke variabel itu. Jika Anda membutuhkan bantuan, beri komentar dan saya dapat memberikan beberapa kode contoh.


Atau, Anda dapat menggunakan metode Chris untuk penggunaan lebih cepat. Metode di atas menawarkan lebih banyak kontrol dan dapat dimodifikasi oleh pengontrol tampilan detail (contoh) Anda.
Kolin Krewinkel

1

Swift 4.2.0

let selectedIndexPath = tableView.indexPathForSelectedRow

yang merupakan nilai pengembalian opsional.

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.