J'ai un code très simple pour renvoyer le titre d'un en-tête de section: Pour une raison quelconque lorsque les en-têtes sont affichés sur le simulateur, la moitié de l'heure est simplement la première lettre et ensuite ellipses. Le défilement de haut en bas (pour rafraîchir la vue d'en-tête la plus probable) entraînera le titre montrant correctement environ la moitié du temps et montrant de manière incorrecte l'autre moitié du temps. P> Est-ce que quelqu'un a une idée de ce qui pourrait causer cette? Je pense que cela est plus un développement récent, mais il semble se produire dans presque tous les utablement code> s dans ma demande. Je ne veux pas dire que ceci est un problème de 3.2, mais cela aurait peut-être commencé à se produire dans ce domaine, mais de toute façon, il doit être lié au code d'une manière ou d'une autre. Merci. P> p>
3 Réponses :
Je copie et accompagné votre code à l'un de mes projets et cela fonctionne parfaitement. (SDK 3.2.1) P>
Peut-être que l'erreur est dans une autre partie? Créent vos propres nappes? Si oui, retournez-vous la hauteur Apopié de "TableView: HauteurFornorTindexpath:"? (Ce problème m'a frappé une fois) P>
Lors du réglage des titres d'en-tête de section, j'ai un meilleur succès dans l'utilisation d'une NString vide qui est définie dans la section correspondante, puis relâchez ensuite cette chaîne lorsqu'elle est terminée; ainsi que limitant mon utilisation des stations si déposées () d'autre ().
J'essaie de le garder simple et propre. Bien sûr, pour ces tables où j'ai plus de 3 sections, j'utilise une déclaration "commutateur" à la place des déclarations IF (). P>
La grande chose à propos de cette fonction est qu'elle est appelée autant de fois - (nombre de sections) que vous avez et que vous courez par le code à chaque fois. La tête de section Vous pouvez également initialiser la chaîne à une valeur "par défaut", par exemple. Structure de base ci-dessous: P> Nstring * = nul; code> donne au compilateur une valeur à renvoyer, quelle que soit ce qui est incorporé dans vos déclarations IF (). Sinon, vous obtenez des avertissements car le compilateur ne recherche pas dans les déclarations IF () pour votre valeur de retour. P>
Nstring * SectionHeader = @ "Titre de l'en-tête par défaut"; code>. Si les déclarations IF () sont satisfaites, la valeur d'en-tête par défaut allouée restera la même sur toute la fonction et sera ainsi retournée en tant que section de section pour le titre. p>
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
//TEMP SECTION STRING HOLDER:
NSString *sectionHeader = nil;
//SET TITLE FOR EACH SECTION:
if(section == 0) {
sectionHeader = @"Section Header No. 1";
}
if(section == 1) {
sectionHeader = @"Section Header No. 2";
}
if(section == 2) {
sectionHeader = @"Section Header No. 3";
}
//RETURN THE SECTION HEADER FOR EACH SECTION:
return sectionHeader;
}
Je le saisi: le problème réel avec le code renvoie Vous devez plutôt renvoyer une chaîne nulle pour obtenir tous les en-têtes et les pieds de page de page à afficher correctement. Renvoyer un espace @ "" code>. Si vous revenez juste une chaîne vierge, au lieu de NIL, cela posera un problème avec l'affichage des en-têtes et des pieds de page. P>
@ "" code> laissera toujours l'espace vertical de l'en-tête de sorte que ce ne soit pas une option viable. J'ai changé toutes les instances de
retour @ ""; code> à simplement
retour nil; code> p> p>