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.

iOSDev
sumber

Jawaban:

216
NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];
Chris Gummer
sumber
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;
    }
}
ZevsVU
sumber
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];
Vineesh TP
sumber
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.

Kolin Krewinkel
sumber
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.

davidrynn
sumber