J'ai fait référence à la DOC et il a dit :
achèvement des travaux
... Ce bloc n'a pas de valeur de retour et prend un seul argument booléen qui indique si les animations se sont terminées ou non avant l'appel du gestionnaire d'achèvement. ...
Mais je constate que, peu importe que vous utilisiez le paramètre bool ou non, la fonction completion:
s'exécutera toujours après animations:
bloc. Tout comme les deux extraits de code d'animation simple basée sur des blocs présentés ci-dessous, les deux font la même chose.
[UIView animateWithDuration:0.3f
delay:0.0f
options:UIViewAnimationCurveEaseInOut
animations:^{
[myView setAlpha:0.0f];
}
completion:^(BOOL finished) {
[myView removeFromSuperview];
}];
et
[UIView animateWithDuration:0.3f
delay:0.0f
options:UIViewAnimationCurveEaseInOut
animations:^{
[myView setAlpha:0.0f];
}
completion:^(BOOL finished) {
if (finished) [myView removeFromSuperview];
}];
Et je trouve que la plupart des gens (y compris moi) utilisent la première (même l'exemple de la doc officielle d'apple). Donc,
- quel est le
finished
utilisé pour ce paramètre exactement ? - ou quelle est la situation qui sera utilisée ?