У меня возникла проблема при реализации 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
? Или, возможно, ошибка в моей реализации? Как лучше всего отменить выбор этой ячейки в этой ситуации?