когда вызывается -tableView: cellForRowAtIndexPath: - PullRequest
0 голосов
/ 11 февраля 2012

У меня проблема с загрузкой содержимого таблицы в UITableViewController.Я создал UITableViewController без XIB.В loadView я вызываю функцию, которая генерирует массив данных для отображения.И из этого массива в tableView:cellForRowAtIndexPath: я пытаюсь загрузить клетки.Но почему-то я ничего не получаю на столе.Кроме того, когда я устанавливаю точку останова для вызова, он не вызывается.Может кто-нибудь сказать, что я здесь делаю не так?

Ответы [ 3 ]

4 голосов
/ 11 февраля 2012

-tableView:cellForRowAtIndexPath: вызывается всякий раз, когда требуется новая ячейка, будь то при первом заполнении экрана ячейками или когда на экран прокручивается новая ячейка, но она никогда не будет вызвана, если вы не вернули правильное числоразделы и строки для вашего табличного представления, так как они будут по умолчанию равны 0.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [yourArray count];
}
0 голосов
/ 11 февраля 2012

как сказал eimantas, вы должны установить делегат "dataSource" вашего UITableView = (указывая на) yourClass с методом tableView: cellForRowAtIndexPath ...

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

0 голосов
/ 11 февраля 2012

cellforrowatindexpath вызывается при построении таблицы. Вы установили делегата стола на себя? Вы добавили в свой .h?

...