UITableView не прокручивает к ячейке

Я пытаюсь прокрутить свой tableview к 2-й ячейке:

[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] 
                                  atScrollPosition:UITableViewScrollPositionNone 
                                           animated:NO];

Я получаю ошибку:

 *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]: section (1) beyond bounds (0).

'

Мой tableview имеет 30 ячеек, которые появляются без разделов.

5
задан Sheehan Alam 26 May 2010 в 06:22
поделиться

3 ответа

Если у вас нет разделов, вы можете попробовать конструктор класса indexPathWithIndex: :

[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathWithIndex:1] 
                      atScrollPosition:UITableViewScrollPositionNone 
                              animated:NO];
3
ответ дан 18 December 2019 в 11:54
поделиться

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

0
ответ дан 18 December 2019 в 11:54
поделиться

Когда я получил такое же сообщение об ошибке с односекционной таблицей, я исправил его, создав NSIndexPath как со строкой, так и с разделом:

NSIndexPath *ip = [NSIndexPath indexPathForRow:itemCurrentlyPlaying inSection:0];

Найти нелегко, но соответствующий удобный конструктор задокументирован здесь:

http://developer.apple.com/iphone/library/documentation/UIKit/Reference/NSIndexPath_UIKitAdditions/Reference/Reference.html

10
ответ дан 18 December 2019 в 11:54
поделиться