2010-06-11 4 views
0
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { 
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section]; 

if ([tempArray containsObject: [sectionInfo indexTitle]]) 
{ 
    [tempArray removeObjectAtIndex:[tempArray indexOfObject:[sectionInfo indexTitle]]];  
    return nil; 
}else 
{ 
    [tempArray addObject: [sectionInfo indexTitle]]; 
    return [sectionInfo indexTitle]; 

} 
return [sectionInfo indexTitle]; 

}têtes de section uitableview sont vides et vacillante

Le code ci-dessus regroupe les cellules dans l'ordre alphabétique, mais affiche un en-tête gris vide au lieu du titre approprié. Cela pourrait-il être dû au fait que je n'ai pas spécifié le nombre d'en-têtes? Ce serait naturellement un seul en-tête pour chaque lettre de l'alphabet. Y a-t-il d'autres idées pour lesquelles les en-têtes de cellule scintilleraient de blanc à gris, de gris à blanc au fur et à mesure que je défilerais?

+0

Il semble que si je compile pour 3.2, cela fonctionne avec la logique ci-dessus. Si je construis avec 3.1.2 (ce que je faisais), le bug apparaît. –

Répondre

1

Appels répétés à tableView: titleForHeaderInSection: semblent retourner alternativement [sectionInfo indexTitle] et nil. Pourquoi es-tu surpris?

+0

J'ai vu des applications où les données sont regroupées par ordre alphabétique. Toutes les cellules commençant par la lettre A sous A, B sous B, etc. Comment cela serait-il accompli? Est-ce que j'utilise la mauvaise fonction? –

+0

Vous utilisez la fonction correcte, mais je ne peux pas pour la vie de moi comprendre ce que tempArray est censé faire. Essayez de remplacer le corps de la fonction entière par 'return [sectionInfo indexTitle]; –

Questions connexes