Seçili UITableView dizinini alın


104

İçin dizin seçmiş olmak istiyorum UITableView. Aşağıdaki kodu yazdım:

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

Bu her zaman 1. öğe için çalışır. İçinde dizin seçmek istiyorumindexPathForRow.

Lütfen yardım et. Teşekkürler.

Yanıtlar:


216
NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];

5
Birden fazla seçime izin verirseniz, şunları kullanmayı düşünün: - (NSArray *) indexPathsForSelectedRows
yura

Bir kez *selectedIndexPathbuna sahip olduğunuzda long pathRow = [selectedIndexPath row];ve long pathSection = [selectedIndexPath section];belirli seçimlere ihtiyaç duyduğunuzda benim için yararlı olur (not edin, bu NSInteger, typedef longher ikisine de ihtiyaç duyduğundan, C geçmişinden gelen daha mantıklıdır %ld.
Jonathan Weinraub,

8

Mevcut seçili satırı al. Yalnızca bir bölümünüz varsa yardımcı olabilir.

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

5

Bu kodu kullanın

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

DidSelectRowAtIndexPath içinde, endeks yolu döndürülürken NSIndexPath olarak bildirilen bir arabirim ayarlayın. Ardından bu değişkene kaydırabilirsiniz. Yardıma ihtiyacınız olursa, yorum yapın ve bazı örnek kodlar verebilirim.


Alternatif olarak, daha hızlı kullanım için Chris'in yöntemini kullanabilirsiniz. Yukarıdaki yöntem daha fazla kontrol sunar ve (örnek) ayrıntı görüntüleme denetleyiciniz tarafından değiştirilebilir.
Kolin Krewinkel

1

Swift 4.2

let selectedIndexPath = tableView.indexPathForSelectedRow

bu isteğe bağlı bir dönüş değeridir.

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.