Как reset позиция прокрутки UITableView?
Я хотел бы полностью reset положение прокрутки UITableView, так что каждый раз, когда я его открываю, он отображает самые верхние элементы. Другими словами, я хотел бы прокручивать представление таблицы вверху каждого раза, когда он открывается.
Я попытался использовать следующий фрагмент кода, но похоже, что я неправильно понял документацию:
- (void)viewWillAppear:(BOOL)animated {
[tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionTop animated:NO];
}
Это неправильный подход здесь?
Ответы
Ответ 1
В августе появился UITableView-специфический метод. Другой способ сделать это:
[tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
Этот метод определен в UIScrollView, родительском классе для UITableView. В приведенном выше примере говорится, что он прокручивается до поля 1x1 в 0,0 - в верхнем левом углу, другими словами.
Ответ 2
Метод, по которому вы используете свитки (в качестве имени метода), ближайшую выбранную строку. Во многих случаях это не будет верхняя строка. Вместо этого вы хотите использовать
scrollToRowAtIndexPath:atScrollPosition:animated:
или
selectRowAtIndexPath:animated:scrollPosition:
где вы используете индексный путь строки, которую вы хотите прокрутить. Второй метод фактически выбирает строку, первый метод просто прокручивается к ней.