Пользовательский UITableViewCell, изменяющий indexPath во время прокрутки?

У меня есть пользовательский UITableViewCell, который я создал в Интерфейсном Разработчике. Я успешно снимаю очереди с ячеек, но при прокрутке ячейки начинают вызывать разные indexPaths. В этом примере я передаю текущие indexPath.section и indexPath.row в customCellLabel. Когда я прокручиваю таблицу вверх и вниз, некоторые ячейки изменятся. Числа могут быть повсюду, но клетки не пропускают визуально.

Если я закомментирую if(cell==nil), то проблема исчезнет.

Если я использую стандартную ячейку, проблема исчезнет.

Идеи, почему это может происходить?

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"CalendarEventCell"];
    if (cell == nil) {
        NSLog(@"Creating New Cell !!!!!");
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CalendarEventCell" owner:self options:nil];
        cell = (UITableViewCell *)[nib objectAtIndex:0];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }


   // Set up the cell...
  [customCellLabel setText:[NSString stringWithFormat:@"%d - %d",indexPath.section, indexPath.row]];


    return cell;
}

1 ответ

Решение

Когда вы создаете ячейку в условии if(cell==nil), назначаете ли вы reuseIdentifier для ячейки как "CalendarEventCell"? Я вижу, что ваше перо зовут CalendarEventCell, но я думаю, вам также нужно установить

cell.reuseIdentifier = @"CalendarEventCell";

Если нет, то я не уверен, сможет ли он удалить нужные ячейки. Кроме того, не уверен, что относится к customCellLabel.

Другие вопросы по тегам