J'ai le code suivant qui est trivial à première vue. Je définis simplement vouloir définir le type de police à la Géorgie avec une taille de 14 si la cellule provient du résultat d'une recherche ou s'il y a un compte de zéro dans mon tableau d'étudiants.La dernière cellule indexée dans UITableView prend une mauvaise police
Cependant, avec cette cellule de code particulière qui est la dernière dans mon tableView
prend la police de la Géorgie avec la taille 14. Toutes les autres cellules fonctionnent correctement. Où dans mon code est la logique mal?
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger row = [indexPath row];
NSInteger section = [indexPath section];
static NSString *CellIdentifier = @"Student";
cell = [tv dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell
if([studentsSearch count] > 0) {
cell.text = (NSString *)[[[studentsSearch objectAtIndex:section] objectAtIndex:row] valueForKey:@"name"];
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
} else {
if(isSearching == YES)
cell.text = @"No students available.";
else
cell.text = @"No students have been added for this school.";
cell.font = [UIFont fontWithName:@"Georgia" size:14];
cell.accessoryType = UITableViewCellAccessoryNone;
}
return cell;
}
EDIT
Ce qui semble se produire est lorsque le contrôleur de vue s'instancié et poussé sur le dessus de la pile du contrôleur de navigation, mon tableau est studentsSearch
nil
. Je le peupler dans ce contrôleur.
Ainsi lors de l'initialisation, la cellule a sa police à la Géorgie avec une taille de 14 parce que le count
est < 0. Cependant, une fois que je remplir le tableau studentsSearch
et Rechargement des données de la tableView
, la police semble coller à partir de quand la vue a été initialisée.
Je suppose maintenant que je dois trouver comment remettre la police à cette cellule à ce que la valeur par défaut est.
Bonjour Ben.Essentiellement, j'essaie de définir la police uniquement lorsqu'un résultat de recherche est vide ou lorsqu'il n'y a aucun étudiant dans le tableau studentsSearch. C'est pourquoi ils sont dans ce bloc d'ailleurs. Le problème ici est, même quand j'ai dit 10 étudiants, le 10ème étudiant prend encore la police de Georgia. – Coocoo4Cocoa
J'ai également remarqué après avoir lancé des invocations arbitraires de NSLog que lors de la première charge de tableView, l'une des polices de cellules est en effet modifiée en police Georgia. Il semble que cette cellule est réutilisée une fois que j'ai rempli le tableau studentsSearch et rechargé la table, d'où la modification de la police. – Coocoo4Cocoa
... et c'est pourquoi vous devez réinitialiser sa police à tout ce que vous utilisez ailleurs. L'autre alternative consiste à utiliser deux identifiants de cellule différents, un pour la recherche, un autre pour les autres. –