UITableViewCell повторно выбирается при обратной прокрутке на экране

У меня возникла проблема при реализации UITableView в iOS приложение, над которым я работаю (iOS SDK 4.2). Если я коснусь ячейки в табличном представлении, а затем прокручиваю представление так, чтобы ячейка покинула экран, когда она снова появится в поле зрения, будет повторно выбрана последняя выбранная ячейка.

Чтобы проверить это, я создал новую на основе представления Проект приложения, вытащил UITableView в Interface Builder и установил контроллер представления в качестве источника данных и делегата табличного представления и поместил следующий код в контроллер представления:

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

- (NSInteger)tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger) section {
    return 12;
}

- (UITableViewCell *)tableView:(UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath {
    static NSString *cellID = @"aCellID";

    UITableViewCell *aCell = [tableView dequeueReusableCellWithIdentifier:cellID];

    if (!aCell) {
        aCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID] autorelease];
    }

    aCell.textLabel.text = [NSString stringWithFormat:@"Cell %d", indexPath.row +1];

    return aCell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *aCell = [tableView cellForRowAtIndexPath:indexPath];
    [aCell setSelected:NO animated:YES];
}

При запуске (в симуляторе) или на устройстве), если бы я нажал на любую ячейку (например, ячейку 12), она была бы выбрана и не выделена. После этого, если в текущей выбранной таблице нет ячеек, если я прокручиваю представление так, чтобы последняя выбранная ячейка (в данном случае 12) покинула экран, она будет выбрана снова, когда появится снова.

Это предполагаемое поведение по умолчанию для UITableView ? Или, возможно, ошибка в моей реализации? Как лучше всего отменить выбор этой ячейки в этой ситуации?

8
задан David Barry 28 January 2011 в 09:54
поделиться