Подтвердить что ты не робот

Перемещение UITableView в ячейку

Я хочу сделать следующее:

У меня есть UITableView, который должен обрабатывать слова (A-Z).

В настоящее время, когда просмотр загрузился, у меня есть одна ячейка, которая отображается (и это правильно). Первая ячейка отображает первое слово из моих слов массива.

Цель: Я хочу перейти в ячейку, которая должна отображать 10 слов из моего массива, но проблема в том, что ячейка с indexPath.row = 10 не существует (и это правильно, потому что я еще не прокручиваю).

Что такое правильное ожидание для перехода от 1 до 10 ячеек.

Я думаю, что если я не использую dequeueReusableCellWithIdentifier для создания моей ячейки, я могу это сделать и решить свою проблему, но я имею в виду эту проблему для памяти устройства.

Другими словами, мне нужно сделать scrollToRowAtIndexPath

Спасибо!

4b9b3361

Ответ 1

Вы имеете право идентифицировать метод scrollToRowAtIndexPath. Итак, все, что вам нужно сделать, это создать новую IndexPath с той строкой, которую вы хотите переместить, например, row index = 10:

[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:10 inSection:indexPath.section] 
             atScrollPosition:UITableViewScrollPositionMiddle animated:NO];

Ответ 2

//For iOS 7 
        [self.TableView reloadData];
        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:1];
        [TableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];

Ответ 3

Можно идентифицировать строку (например, ниже, это forRow), которая должна быть видимой и перезагрузить строку. По завершении этого можно прокручивать эту строку.

let moveToIndexPath = NSIndexPath(forRow: forRow, inSection: 0)
self.tableView.reloadRowsAtIndexPaths([moveToIndexPath], withRowAnimation: .None)
self.tableView.scrollToRowAtIndexPath(moveToIndexPath, atScrollPosition: atScrollPosition, animated: true)