Может быть, есть недоразумение. Предполагается, что метод, который вы цитируете, сообщает tableView, какую строку отображать в этом indexPath. Поэтому всякий раз, когда tableView запрашивает этот метод, он делает это, потому что в этом indexPath еще нет строки.
Код шаблона сгенерирует новую ячейку или исключит ее из очереди:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
Затем можно получить доступ к cell
, чтобы настроить содержимое каждой ячейки или добавить содержимое в contentView.
Если вы управляете форматированием ячейки для каждой строки (например, цветом cell.textLabel), вы должны сделать это следующим методом делегата:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath