Отримати вибраний індекс UITableView


104

Я хочу, щоб вибрали індекс для UITableView. Я написав наступний код:

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

Це завжди працює для 1-го пункту. Я хочу, щоб індекс вибрав уindexPathForRow.

Будь ласка, допоможіть. Дякую.

Відповіді:


216
NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];

5
Якщо дозволити множинний вибір, рекомендується використовувати: - (NSArray *) indexPathsForSelectedRows
юра

Коли ви переконаєтесь, *selectedIndexPathщо мені корисно мати доступ long pathRow = [selectedIndexPath row];і long pathSection = [selectedIndexPath section];коли вам потрібні конкретні вибори (зауважте, що NSIntegerце typedef longпоходження, що надходить із фона С, має більше сенсу, оскільки обом це потрібно в %ldбудь-якому випадку.
Джонатан Вайнрауб,

8

Отримати поточний вибраний рядок Може бути корисним, якщо у вас є лише один розділ.

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

5

Використовуйте цей код

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 встановіть інтерфейс, оголошений NSIndexPath як повернений indexpath. Потім ви можете прокрутити до цієї змінної. Якщо вам потрібна допомога, прокоментуйте, і я можу дати трохи зразкового коду.


Крім того, ви можете використовувати метод Кріса для швидшого використання. Вищеописаний метод пропонує більше контролю і може бути змінений вашим (прикладом) контролером деталей перегляду.
Колін Кревінкель

1

Швидкий 4.2

let selectedIndexPath = tableView.indexPathForSelectedRow

що є необов'язковим значенням повернення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.