2014-09-10 3 views
0

У меня есть массив из 20 элементов и табличный вид, который может отображать только 5 из них. При запуске представления я выбираю 1 элемент, и я хочу показать этот элемент в виде таблицы, выбрав его. Когда я выбираю один из первых 5, выбор отображается. Когда я выбираю элемент 5+, я хочу, чтобы этот элемент также был видимым, перемещая смещение содержимого. Как я могу прокрутить TableView к определенному элементу из списка внутри массива tableview? В какой функции делегата табличного представления я это делаю?UITableView прокручивается до элемента программно

Я попытался установить смещение содержимого и scrollToRowAtIndexPath внутри метода cellForRowAtIndexPath, но он работает некорректно. Есть идеи?

ответ

2

Вызов scrollToRowAtIndexPath: в cellForRow не work..First вам необходимо перезагрузить данные Tableview, а затем вам нужно вызвать, как показано ниже, после выбора пункта ..

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:selectedRow inSection:0]; 

[self.tableView reloadData]; 

[self.tableView scrollToRowAtIndexPath:indexPath 
    atScrollPosition:UITableViewScrollPositionTop animated:YES]; 

Надеется, что это помогает ..

+0

После инициализации tableView я вызвал данные перезагрузки и прокрутил таблицу до нужного индекса. Большое спасибо! – AleksandarNS

0

Поместите свой scrollToRowAtIndexPath внутри ViewDidLoad или ViewWillAppearTableViewController.

+0

У меня нет контроллера табличного представления. У меня 3 вида таблицы, внутри 1 ViewController. – AleksandarNS

+0

ОК, поэтому в вашем ViewController какое событие вызывает выбор? Поместите scrollToRowAtIndexPath в код, который обрабатывает это событие. – pbasdf

Смежные вопросы