¿Qué se considera la mejor práctica para animar las transiciones de vista en el iPhone?
Por ejemplo, el ViewTransitions
proyecto de muestra de apple usa código como:
CATransition *applicationLoadViewIn = [CATransition animation];
[applicationLoadViewIn setDuration:1];
[applicationLoadViewIn setType:kCATransitionReveal];
[applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[[myview layer] addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];
pero también hay fragmentos de código flotando alrededor de la red que se ven así:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myview cache:YES];
[myview removeFromSuperview];
[UIView commitAnimations];
¿Cuál es el mejor enfoque? Si pudieras proporcionar un fragmento también sería muy apreciado.
NOTA: No he podido lograr que el segundo enfoque funcione correctamente.
iphone
ios
cocoa-touch
uiview
core-animation
Keith Fitzgerald
fuente
fuente
UIView
lugar. Son esencialmente lo mismo quebeginAnimations
y amigos, pero usan funciones de bloqueo / cierre.[UIView transitionWithView:mysuperview duration:0.75 options:UIViewAnimationTransitionFlipFromRight animations:^{ [myview removeFromSuperview]; } completion:nil]
Consulte la documentación de UIView para obtener más detalles.He estado usando este último para muchas animaciones ligeras y agradables. Puede usarlo para fundir dos vistas, fundir una frente a otra o fundirla. Puede tomar una vista sobre otra como una pancarta, puede hacer que una vista se estire o encoja ... Estoy obteniendo mucho kilometraje de
beginAnimation
/commitAnimations
.No pienses que todo lo que puedes hacer es:
Aquí hay una muestra:
Como puede ver, puede jugar con alfa, cuadros e incluso tamaños de una vista. Jugar. Puede sorprenderse con sus capacidades.
fuente
La diferencia parece ser la cantidad de control que necesita sobre la animación.
El
CATransition
enfoque le da más control y, por lo tanto, más cosas para configurar, por ejemplo. La función de sincronización. Al ser un objeto, puede almacenarlo para más tarde, refactorizar para apuntar todas sus animaciones para reducir el código duplicado, etc.Los
UIView
métodos de clase son métodos convenientes para animaciones comunes, pero son más limitados queCATransition
. Por ejemplo, solo hay cuatro tipos de transición posibles (voltear a la izquierda, voltear a la derecha, acurrucarse, acurrucarse). Si quisieras hacer un desvanecimiento, deberías cavar hacia abajo paraCATransition's
desvanecer la transición, o configurar una animación explícita delUIView
alfa de tu.Tenga
CATransition
en cuenta que en Mac OS X le permitirá especificar unCoreImage
filtro arbitrario para usar como transición, pero tal como está ahora, no puede hacerlo en el iPhone, que careceCoreImage
.fuente
Podemos animar imágenes en ios 5 usando este código simple.
fuente
En los
UIView
documentos, lea sobre esta función para ios4 +fuente
De todos modos, el método "Bloquear" se prefiere hoy en día. Explicaré el bloque simple a continuación.
Considere lo recortado a continuación. bug2 y bug 3 son imageViews. La animación a continuación describe una animación con 1 segundo de duración después de un retraso de 1 segundo. El bug3 se mueve desde su centro al centro del bug2. Una vez que se complete la animación, se registrará "¡Animación del centro terminada!".
Espero que esté limpio !!!
fuente
Aquí está el código para la animación suave, podría ser útil para muchos desarrolladores.
Encontré este fragmento de código de este tutorial.
fuente
intentemos y paguemos por Swift 3 ...
fuente