¿Cómo puedo replicar la animación de destrucción de Mail.app?

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:

  1. Puede usar “suckEffect” con el estándar +[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
  2. “spewEffect”, “genieEffect”, “unGenieEffect”, etc. ya no existen en iPhoneOS 3.x. La única transición no documentada que queda es “cubo” (-), “efecto ondulación” (110), los tres efectos “cámara iris” (105,106,107) y “succión efecto” (103).

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!"); }]; 

Genie IN