2011-03-17 4 views
9

J'ai une application iPad qui a un MKMapView intégré dans un UINavigationController qui est affiché dans un UITabBar. J'affiche un contrôleur de popover sur la carte avecUIPopoverController ne pas animer

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

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

Le popover affiche bien. Cependant, il n'a pas le bel effet animé: il apparaît immédiatement à l'écran. De même, quand je le rejette, il disparaît sans aucune animation.

Quelqu'un at-il une idée de comment je peux faire fonctionner l'animation? Dois-je essayer de l'afficher à partir d'une autre vue? Y a-t-il une propriété sur quelque chose que j'aurais pu négliger de définir?

Répondre

11

Malgré le paramètre animated:(BOOL), il semble que les popovers ne s'animent jamais lorsqu'ils sont présentés. J'ai essayé une douzaine d'applications de première et de troisième parties.

Le licenciement devrait Animer cependant, à condition que vous passez YES-dismissPopoverAnimated:(BOOL)

1

En supposant que votre popover s'anime en dehors de la vue de la carte, j'essaierais de placer la vue de la carte dans une vue de conteneur dont l'image est de la même taille que celle de la carte. De là, il est trivial de présenter le popover dans la vue conteneur. Selon la documentation d'Apple, MKMapView n'est pas supposé être sous-classé, donc comme UIWebView, il me semble que c'est une de ces vues dont il vaut mieux ne pas toucher les tripes.