2010-07-23 4 views
3
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.5]; 
... 
[UIView commitAnimations]; 

Par exemple, j'ai besoin d'animer la largeur du cadre de façon conditionnelle, ainsi que le reste des autres modifications obligatoires. La raison pour laquelle je ne peux pas sortir le code de ce bloc, parce qu'il y a un appel de fonction dans le bloc. Comment exclure certaines opérations du bloc d'animation?Excluant du bloc d'animation

+0

Pouvez-vous être plus précis quant à ce que vous essayez d'avoir comme résultat final. Qu'est-ce que vous essayez d'exclure? – Lance

+0

Mis à jour, laissez-moi savoir si toujours pas clair. – Pablo

+0

Par conséquent, je veux animer la plupart des propriétés de ce bloc et appliquer des changements immédiats sans animation à certains d'entre eux. – Pablo

Répondre

8

Commander setAnimationsEnabled:

[UIView beginAnimations:@"Ani" context:NULL]; 
[UIView setAnimationDuration:1.0]; 
    // some animations 
[UIView setAnimationsEnabled:NO]; 
    // animations disabled (put exclusions here) 
[UIView setAnimationsEnabled:YES]; 
    // some more animations 
[UIView commitAnimations]; 
+0

Je l'ai fait avant d'écrire et il dit: 'L'utilisation de cette méthode est déconseillée dans iOS 4.0 et versions ultérieures. Vous devriez plutôt utiliser les méthodes d'animation basées sur les blocs. » – Pablo

+0

Il est déconseillé, mais toujours supporté ;-) – ohho

+0

Oui, s'il n'y a pas d'autre moyen je devrai m'en tenir ... – Pablo

0

Voici les blocs manière à base:

[UIView performWithoutAnimation:^{ 
    view.frame = CGRectMake(...); 
}];