è estremamente versatile, come già visto in setAnimationDidStopSelector: usi diversi ed avanzati . El ajuste de la final de la animación, ejecutado con setAnimationDidStopSelector , una clase de UIView es extremadamente versátil, como se ve en setAnimationDidStopSelector: diferentes usos y avanzados .
Permítanme ahora mostrar una técnica muy útil cuando tenemos varias animaciones y / o desean administrar las colas (cola) de las animaciones.
Artículos con la etiqueta 'setAnimationDidStopSelector'
Objective-C: manejar múltiples animaciones con un solo setAnimationDidStopSelector
setAnimationDidStopSelector: diferentes usos y avanzados
En la mayoría de los casos, o porque estamos acostumbrados o porque hemos visto en los tutoriales y en algunos textos, se utiliza el setAnimationDidStopSelector de esta manera:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | nil context : NULL ] ; [BeginAnimations UIView: contexto nada: NULL]; 1.5 ] ; [UIView setAnimationDuration: 1,5]; UIViewAnimationCurveEaseInOut ] ; [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; self ] ; [SetAnimationDelegate UIView: auto]; @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. En el código anterior el setAnimationDelegate conjunto self como delegado ya través de setAnimationDidStopSelector envía un mensaje removeView cuando la animación ha terminado. El código es correcto, sin embargo, hace uso de una definición de mensaje ( removeView ) que podrían ser omitidos. Ahora, aquí es el mismo código, con el mismo efecto, sin el mensaje de removeView :
1 2 3 4 5 6 7 8 9 | nil context : NULL ] ; [BeginAnimations UIView: contexto nada: 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]; |
! Lo interesante de este enfoque es que myView podría ser una subclase de UIView ! Por lo tanto, puede ser una clase personalizada con nuestros propios mensajes y, como se dijo, fácilmente se puede llamar desde setAnimationDidStopSelector . Además, el setAnimationDidStopSelector selectores de acuerdo con los parámetros:
1 2 3 4 5 6 7 8 9 | nil context : NULL ] ; [BeginAnimations UIView: contexto nada: 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]; |
En este ejemplo se puede extender a todos los casos aquí, donde hemos establecido un delegado, Atro no es un puntero a una instancia de un objeto.






Últimos Comentarios
Marcos : @ Marcos: Gracias por la respuesta. Por ejemplo, si usted tiene un código para guardar / utilizar la carpeta ...
Marcos : Gracias por la respuesta. Por ejemplo, si usted tiene un código para guardar / utilizar la carpeta ...
Giovambattista Fazioli : @ Marcos: en principio, absolutamente, mucho depende de cómo y por qué descargar. Luisiana ..
Marcos : Hola, buen guía! Quería preguntarle, usted puede usar el mismo código para ejecutar una base de datos sql? En lugar de ...
José : Hola quería preguntar cómo se puede hacer en el post que he subido una galería de 50 imágenes, por ejemplo, ...