2009-07-21 4 views
3

Salutations!Fading d'un UIView sur un UITableView avec des sections

J'ai ajouté un UIActivityIndicatorView comme d'un sous-vue UITableView. L'intention est de faire disparaître cette vue une fois que la table sous-jacente a été actualisée avec de nouvelles données. Le problème est que les sections dans la vue de table (par exemple, A, B, C, etc.) semblent être ajoutées après l'apparition de l'indicateur d'activité, bloquant partiellement l'indicateur d'activité pendant un instant. Y a-t-il "une meilleure façon" (ou une manière plus appropriée) de faire ce genre de chose quand il s'agit d'indicateurs d'activité sur des vues de table avec des sections? En ce moment je fais cela pour faire disparaître l'affichage de l'indicateur d'activité loading:

CGContextRef context = UIGraphicsGetCurrentContext(); 
[UIView beginAnimations:nil context:context]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
[UIView setAnimationDuration:1.0]; 
[loading setAlpha:0.0f]; 
[UIView commitAnimations]; 

FWIW, appelant l'équivalent de [myTableView bringSubviewToFront:myActivityIndicatorView] ne semble pas faciliter les choses non plus.

En plus de cela, il y a la question de supprimer loading de la vue d'ensemble. Je suppose que je dois utiliser setAnimationDidStopSelector: et passer la vue de chargement comme contexte (et peut-être que je n'ai pas vraiment besoin de cette CGContextRef ligne après tout).

Répondre

2

Il peut être plus facile de contenir votre table dans un UIView en tant que sous-vue, puis de basculer dans une vue de chargement sous forme de sous-vue jusqu'à ce que vos données soient prêtes à être affichées.

+0

Ahh, merci! Donc, j'aurais une vue parent avec deux sous-vues - la table et la vue de chargement, par opposition à faire de la vue de chargement une sous-vue de la vue de la table. –

+0

Bleah. Pas de chance. Je dois faire quelque chose de mal. J'ai placé la table dans un UIView et l'ai lié à un IBOutlet via une nouvelle propriété "topView". (Raison: j'ai remarqué que les contrôleurs de vue de table n'exposent que "view" dans IB, qui est lié à la vue Table, mais les deux "view" _and_ "tableView" sont finalement définis dans la même vue de table, d'où la nouvelle propriété topView .) J'ajoute ensuite mon indicateur de chargement UIView en tant que sous-vue de topView, mais je ne le vois jamais. Je ne vois que la vue Table. Je les ai même envoyés à l'avant/arrière de l'ordre z, en vain. (J'ai aussi revérifié, et topView n'est pas nul.) Hmm ... –

+0

Je fais habituellement un IBOutlet de type UITableView appelé "myTable" et attache cela avec IB ... Aussi, avant de mettre dans la vue de chargement Je supprimerai le UITableView de la vue d'ensemble, puis le remettrai lorsque le chargement est terminé. –

Questions connexes