En mi aplicación de iPhone, he puesto un UIBarBUtton de tipo UIBarButtonSystemItemTrash en mi UIToolBar. Cuando me presionen, me gustaría replicar la animación de Mail.app: se abre el contenedor, el UIView se pliega y vuela hacia él.
¿Hay alguna manera de acceder a esta animación mediante el iPhone SDK?
Actualmente estoy usando una animación personalizada, pero hay algunos límites; por ejemplo, no puedo animar el contenedor en sí. ¿Tienes alguna sugerencia? ¿Muestras de código?
Aclamaciones,
Davide
Use el tipo suckEffect en una animación. También: spewEffect, genieEffect, unGenieEffect, twist, tubey, swirl, cameraIris, cameraIrisHollowClose, cameraIrisHollowOpen, rippleEffect, charminUltra, zoomyIn y zoomyOut. No funciona en el simulador
CATransition *animation = [CATransition animation]; animation.type = @"suckEffect"; animation.duration = 2.0f; animation.timingFunction = UIViewAnimationCurveEaseInOut; view.opacity = 1.0f; [view.layer addAnimation:animation forKey:@"transitionViewAnimation"];
Nota: El fragmento de código se extrajo de una base de código más grande. Espero que funcione 🙂
Solo para agregar algo de información:
+[UIView setAnimationTransition:forView:cache:]
. Solo pase el número 103 a la variable animationTransition . Sin embargo, esto no evitará que Apple rechace tu aplicación: p Ver http://www.iphonedevwiki.net/index.php?title=UIViewAnimationState para más detalles.
Además, para animar el contenedor (con API privada): http://www.iphonedevwiki.net/index.php?title=UIToolbar#Animating_the_trash_can_icon .
Lamentablemente, creo que esto tendrá que ser una animación totalmente personalizada. El plegado de UIView se puede aproximar utilizando Core Animation, tal vez agregando perspectiva al CATransform3D de la capa subyacente de UIView para distorsionar el UIView en un trapezoide que queda atrapado en el bote de basura.
En cuanto a la papelera, puede crear un UIBarButtonItem utilizando initWithCustomView :, que podría permitirle insertar una UIView personalizada que tenga una papelera de basura animable. Parece que el bote de basura tiene dos elementos, la base de la lata y la tapa, que se rotan de forma independiente para abrir y cerrar la lata. Dibuje PNG para ambos, cree UIImageViews para ellos y conviértelos en subvistas de la vista personalizada UIBarButtonItem. Para abrir y cerrar, aplique transformaciones rotacionales para animar las subvistas.
No estoy seguro de si esto es una respuesta, pero aquí está la lib que tiene “efecto genio”, por lo que es bastante similar a lo que quieres lograr.
CGRect endRect = CGRectMake(30, 40, 50, 60); [view genieInTransitionWithDuration:0.7 destinationRect:endRect destinationEdge:BCRectEdgeTop completion:^{ NSLog(@"I'm done!"); }];