2011-03-17 9 views
9

Tengo una aplicación para iPad que tiene un MKMapView incrustado en un UINavigationController que se muestra en un UITabBar. Estoy mostrando un controlador de popover sobre el mapa conUIPopoverController Not Animating

UIPopoverController *myPopoverController = 
    [[[UIPopoverController alloc] initWithContentViewController:myContentView] 
    autorelease]; 

[myPopoverController presentPopoverFromRect:myRect 
            inView:mapView 
        permittedArrowDirections:UIPopoverArrowDirectionAny 
            animated:YES]; 

El popover se muestra bien. Sin embargo, no tiene el bonito efecto animado: aparece de inmediato en pantalla. Del mismo modo, cuando lo descarto, simplemente desaparece sin ninguna animación.

¿Alguien tiene alguna idea de cómo puedo hacer que la animación funcione? ¿Debo intentar mostrarlo desde otra vista? ¿Hay alguna propiedad en algo que podría haber olvidado establecer?

Respuesta

11

A pesar del parámetro animated:(BOOL), parece que los popovers nunca se animan cuando se presentan. Probé una docena de aplicaciones de primera y tercera parte.

El despido debe sin embargo animado, siempre que pase YES-dismissPopoverAnimated:(BOOL)

1

Suponiendo que su popover se anime fuera de la vista del mapa, trataría de colocar la vista del mapa en una vista de contenedor cuyo marco es del mismo tamaño que la vista del mapa. A partir de ahí, es trivial presentar el popover en la vista de contenedor.

Según la documentación de Apple, se supone que MKMapView no debe estar subclasificado, por lo que, como UIWebView, me parece una de esas vistas cuyas agallas deben dejarse intactas.

Cuestiones relacionadas