è estremamente versatile, come già visto in setAnimationDidStopSelector: usi diversi ed avanzati . Le réglage de la fin de l'animation, exécuté avec setAnimationDidStopSelector , une classe de UIView est extrêmement polyvalent, comme vu dans setAnimationDidStopSelector: les différents usages et avancées .
Permettez-moi maintenant vous montrer une technique très pratique lorsque nous avons des animations multiples et / ou souhaitez gérer les files d'attente (queue) des animations.
Articles taggés avec 'setAnimationDidStopSelector'
Objective-C: gérer plusieurs animations avec une seule setAnimationDidStopSelector
setAnimationDidStopSelector: les différents usages et avancées
Dans la plupart des cas, ou parce que nous sommes habitués ou parce que nous avons vu dans les didacticiels et dans certains textes, nous utilisons le setAnimationDidStopSelector de cette manière:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | nil context : NULL ] ; [BeginAnimations UIView: contexte nul: NULL]; 1.5 ] ; [UIView setAnimationDuration: 1,5]; UIViewAnimationCurveEaseInOut ] ; [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; self ] ; [SetAnimationDelegate UIView: self]; @selector ( removeView ) ] ; [UIView setAnimationDidStopSelector: @ selector (removeView)]; ; myView.alpha = 0; ; [CommitAnimations UIView]; / / void ) removeView { - (Void) {removeView ; [MyView removeFromSuperview]; } |
come delegato e tramite la setAnimationDidStopSelector gli invia un messaggio removeView quando l'animazione è terminata. Dans le code ci-dessus l' setAnimationDelegate mis self en tant que délégué et par setAnimationDidStopSelector envoie un message removeView lorsque l'animation est terminée. Le code lui-même est correct, cependant, fait usage d'une définition de message ( removeView ) qui pourraient être omis. Maintenant, voici le même code, avec le même effet, sans le message removeView :
1 2 3 4 5 6 7 8 9 | nil context : NULL ] ; [BeginAnimations UIView: contexte nul: NULL]; 1.5 ] ; [UIView setAnimationDuration: 1,5]; UIViewAnimationCurveEaseInOut ] ; [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; myView ] ; [SetAnimationDelegate UIView: myView]; @selector ( removeFromSuperview ) ] ; [UIView setAnimationDidStopSelector: @ selector (removeFromSuperview)]; ; myView.alpha = 0; ; [CommitAnimations UIView]; |
! La chose intéressante à propos de cette approche est que myView pourrait être une sous-classe de UIView ! Il peut donc être une classe personnalisée avec nos propres messages et, comme indiqué, facilement appelables depuis setAnimationDidStopSelector . En outre, le setAnimationDidStopSelector sélecteurs d'accord avec les paramètres:
1 2 3 4 5 6 7 8 9 | nil context : NULL ] ; [BeginAnimations UIView: contexte nul: NULL]; 1.5 ] ; [UIView setAnimationDuration: 1,5]; UIViewAnimationCurveEaseInOut ] ; [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; myView ] ; [SetAnimationDelegate UIView: myView]; @selector ( myMessage : param1 : ) ] ; [UIView setAnimationDidStopSelector: @ selector (myMessage: param1:)]; ; myView.alpha = 0; ; [CommitAnimations UIView]; |
Cet exemple peut être étendu à tous les cas ici, où nous installons un délégué, Atro n'est pas un pointeur vers une instance de n'importe quel objet.






Derniers Commentaires
Mark : @ Marc: Merci pour la réponse. Par exemple, si vous avez un code de sauvegarder / utiliser le dossier ...
Mark : Merci pour la réponse. Par exemple, si vous avez un code de sauvegarder / utiliser le dossier ...
Giovambattista Fazioli : @ Marc: en principe, absolument, beaucoup dépend de comment et quoi télécharger. La. ..
Mark : Bonjour, bon guide! Je voulais vous demander, vous pouvez utiliser le même code à exécuter une base de données SQL? Au lieu de ...
Joseph : Salut je voulais vous demander comment vous pouvez faire dans le post que j'ai téléchargé une galerie de 50 images, par exemple, ...