J'ai un selectedArray défini comme une propriété dans mon fichier qui contient les cellules qui ont été "vérifiées". Lors de l'affichage de la cellule, je vérifie si la valeur de la cellule courante est dans le tableau selectedArray, et si c'est le cas, j'affiche le UITableViewCellAccessoryCheckmark en tant qu'Accessoire de la table. Le seul problème est que lorsque l'utilisateur recherche via UITableView à l'aide de UISearchBar, je demande à la table de reloadData une fois la recherche terminée, et dans la méthode numberofRows, je vois la bonne quantité d'objets dans le tableau selectedArray. Toutefois, la méthode cellForRowatIndexPath affiche toujours les anciennes coches comme si le tableau selectedArray n'avait jamais été mis à jour.UITableView ne rafraîchit pas correctement
Quelqu'un peut-il m'aider s'il vous plaît? Voici mon code -
NSArray *tempArray = [[NSArray alloc] init];
if(tableView == theTable) {
tempArray = [contactsArray objectAtIndex:indexPath.row];
} else {
tempArray = [searchfor_array objectAtIndex:indexPath.row];
}
NSString *cellValue = [tempArray objectAtIndex:0];
static NSString *CellIdentifier;
CellIdentifier = cellValue;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UILabel *name = [[UILabel alloc] initWithFrame:CGRectMake(70, 30, 200, 20)];
name.text = [tempArray objectAtIndex:0];
name.backgroundColor = [UIColor clearColor];
[name setFont:[UIFont fontWithName:@"Helvetica-Bold" size:18]];
[cell.contentView addSubview:name];
[name release];
if([selectedArray containsObject:[tempArray objectAtIndex:0]]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
}
return cell;
[cell release];
[tempArray release];
[cellValue release];
Merci d'avoir comblé les lacunes dans ma réponse. – Justin