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