setNeedsDisplay n'est pas toujours appel drawRect

J'ai un affichage personnalisé dans un tableau personnalisé de la cellule. Chaque fois qu'une propriété spécifique sur la vue personnalisée est changé, j'appel [self setNeedsDisplay] qui retrace la vue dans - (void)drawRect:(CGRect)rect. Cette propriété est définie dans la vue table du délégué tableView:cellForRowAtIndexPath:. Mais lors de l'affichage de la table est plus grande que l'écran et les cellules doivent être réutilisés, drawRect n'est pas appelée à chaque fois que setNeedsDisplay est. Surtout quand j'ai faites glisser vers la table rapidement . Ralentir le défilement fonctionne très bien. Cela conduit à l'information dans le premier et le dernier cellules étant souvent incorrecte.

Dans le journal, je peux voir que, normalement, pour chaque appel de setNeedsDisplay il y a un appel à drawRect, mais quand j'ai faites défiler l'affichage de la table rapidement il y a plus d'appels à setNeedsDisplay que drawRect. Sûrement il doit y avoir un un-à-un ratio d'ici.

- Je utiliser le même affichage personnalisé dans un normal UIView, et il redessine parfaitement et à chaque fois que j'appelle setNeedsDisplay. Le problème semble isolé de vues de table et la réutilisation des cellules.

Personne ne sait ce qui se passe ici?
Est-il un autre moyen de forcer l'affichage personnalisé pour redessiner lui-même?

OriginalL'auteur kareman | 2009-05-17