J'ai connecté les deux méthodes ci-dessous pour séparer les boutons dans mon interface utilisateur mais j'ai remarqué qu'après avoir appuyé sur le bouton "VERSION 1" je ne pouvais plus appuyer sur le bouton jusqu'à la fin de la durée de l'animation. Ma compréhension était que l'animation utilise son propre thread afin de ne pas bloquer l'application principale.animateWithDuration: animations: blocage du thread principal?
// VERSION 1
-(IBAction)fadeUsingBlock {
NSLog(@"V1: Clicked ...");
[myLabel setAlpha:1.0];
[UIView animateWithDuration:1.5 animations:^{
[myLabel setAlpha:0.0];
}];
}
La version ancienne (ci-dessous) ne permet le bouton pour être réprimés avant que la minuterie d'animation se termine, la réinitialisation de la minuterie simplement recommencer. Si ces deux éléments fonctionnent de la même manière, ai-je oublié quelque chose ou y a-t-il eu un changement d'opération entre 3.2 et 4?
// VERSION 2
-(IBAction)fadeUsingOld {
NSLog(@"V2: Clicked ...");
[myLabel setAlpha:1.0];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[myLabel setAlpha:0.0];
[UIView commitAnimations];
}
Vive gary
Ah qui fait sens, j'avais manqué cette option dans les documents, je vais le chercher. Merci beaucoup, très apprécié. – fuzzygoat
Merci pour ça. Merde, ça m'embêtait. C'est en fait assez ennuyeux que ça ne soit pas activé par défaut, car ça dit qu'il bloque l'interaction avec la vue en cours d'animation, mais en fait ça bloque toute l'interface utilisateur! – runmad
Man, ne serait-ce pas bien si cela a été corrigé dans le prochain iOS 5.0 ... –