0 votes

UITableView a une vue d'en-tête de section personnalisée qui disparaît

La vue de tableau, l'en-tête de tableau personnalisé et les en-têtes de section personnalisés sont chargés à partir d'un NIB. Le tableau est groupé.

Lorsque la vue se charge, l'en-tête de la première section ne s'affiche pas. Si je fais défiler l'écran vers le bas, les autres en-têtes de section apparaissent d'abord, mais disparaissent dès que la section située au-dessus d'eux touche le haut de l'écran.

Si je fais défiler l'écran vers le haut de manière à ce que l'en-tête d'une section disparue soit hors de l'écran, puis si je fais défiler l'écran vers le bas, l'en-tête réapparaît généralement.

Le problème est assez constant, mais pas entièrement - parfois, je dois faire défiler l'écran vers le haut et vers le bas plusieurs fois pour faire réapparaître un en-tête. Quelles sont les causes possibles de ce problème ?

1voto

Rob Lourens Points 2152

J'ai corrigé le problème : j'utilisais une vue UIV pour trois sections, je modifiais le texte de manière appropriée, puis je le renvoyais. La création d'UIViews distinctes dans la NIB pour chaque section a permis de résoudre le problème. Je suppose donc que vous ne pouvez pas faire cela.

-3voto

Chip Coons Points 2361

Vos vues personnalisées doivent être des objets UILable ou UIImageView (ou descendre de ces objets). Il se peut que vous deviez définir manuellement la hauteur des lignes pour les en-têtes afin que les vues personnalisées se chargent et s'affichent correctement.

Vous devez consulter les détails dans le Protocole UITableViewDelegate .

En particulier, examinez les méthodes suivantes :

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

y

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

Une partie de la discussion sur la méthode tableView:viewForHeaderInSection : indique :

Cette méthode ne fonctionne correctement que si tableView:heightForHeaderInSection : est également implémentée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X