Перемещение UITableView в ячейку
Я хочу сделать следующее:
У меня есть UITableView, который должен обрабатывать слова (A-Z).
В настоящее время, когда просмотр загрузился, у меня есть одна ячейка, которая отображается (и это правильно). Первая ячейка отображает первое слово из моих слов массива.
Цель:
Я хочу перейти в ячейку, которая должна отображать 10 слов из моего массива, но проблема в том, что ячейка с indexPath.row = 10 не существует (и это правильно, потому что я еще не прокручиваю).
Что такое правильное ожидание для перехода от 1 до 10 ячеек.
Я думаю, что если я не использую dequeueReusableCellWithIdentifier
для создания моей ячейки, я могу это сделать и решить свою проблему, но я имею в виду эту проблему для памяти устройства.
Другими словами, мне нужно сделать scrollToRowAtIndexPath
Спасибо!
Ответы
Ответ 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)