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

Как reset позиция прокрутки UITableView?

Я хотел бы полностью reset положение прокрутки UITableView, так что каждый раз, когда я его открываю, он отображает самые верхние элементы. Другими словами, я хотел бы прокручивать представление таблицы вверху каждого раза, когда он открывается.

Я попытался использовать следующий фрагмент кода, но похоже, что я неправильно понял документацию:

- (void)viewWillAppear:(BOOL)animated {
    [tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionTop animated:NO];
}

Это неправильный подход здесь?

4b9b3361

Ответ 1

В августе появился UITableView-специфический метод. Другой способ сделать это:

[tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];

Этот метод определен в UIScrollView, родительском классе для UITableView. В приведенном выше примере говорится, что он прокручивается до поля 1x1 в 0,0 - в верхнем левом углу, другими словами.

Ответ 2

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

scrollToRowAtIndexPath:atScrollPosition:animated:

или

selectRowAtIndexPath:animated:scrollPosition:

где вы используете индексный путь строки, которую вы хотите прокрутить. Второй метод фактически выбирает строку, первый метод просто прокручивается к ней.