2010-11-01 2 views
0

Je fais quelques calculs simultanément, mais je veux animer l'affichage des résultats. par ex. un bouton est cliqué, un NSInvocationOperation ou un nsnotification asynchrone est affiché, pour effectuer les calculs. en même temps, la vue transite vers une autre vue. Comment animer l'affichage des calculs dans la nouvelle vue. Parfois les calculs se terminent avant que la vue ne soit au premier plan (viewDidAppear), auquel cas l'animation n'est pas visible.ios anime le résultat d'arrière-plan ou de calculs simultanés

Si je marque l'achèvement des calculs et que je fais l'animation dans viewDidAppear, les calculs se terminent parfois après viewDidAppear a été appelée.

Quelle est la bonne façon de procéder? tirer un execSelector: withObject: afterDelay: avec un long retard se sent comme un hack mendier pour une condition de course.

+0

Alors, comment voulez-vous que ce soit exactement? – tia

+0

J'aurais dû expliquer qu'en cliquant sur un bouton, les calculs sont effectués en arrière-plan, ainsi que la vue passant à une autre vue. Je veux une étiquette dans la nouvelle vue pour animer comme il affiche le résultat. – sam

Répondre

0

Une variable d'état pourrait accomplir ceci. Dans votre tête:

@property BOOL viewIsVisible; 

Et dans votre implémentation:

@synthesize viewIsVisible; 

- (void) viewDidLoad 
{ 
    [super viewDidLoad]; 
    viewIsVisible = NO; 
} 

- (void) viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    viewIsVisible = YES; 
} 

- (void) viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 
    viewIsVisible = NO; 
} 

Est-ce que ce travail? Je ne sais pas exactement comment vous avez mis en place le KVO.