2011-11-05 4 views
6

Je suis en train d'animer la valeur alpha d'une vue superposition MapKit (spécifiquement un MKCircleView) dans iOS 5 en utilisant le code suivant:ios MapKit MKOverlayView animation se passe instantanément

-(void) animateCircle:(MKCircle*)circle onMap:(MKMapView*) mapView 
{ 
    MKCircleView * circleView = (MKCircleView*) [mapView viewForOverlay:circle]; 
    UIViewAnimationOptions options = UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionTransitionNone; 
    [UIView animateWithDuration:5.0 
          delay:0.0 
         options:options 
        animations:^(void) { circleView.alpha = 0.9; } 
        completion:^(BOOL finished) {} 
    ];  
} 

La valeur alpha de la superposition est en train de changer comme je veux, mais il saute ici instantanément plutôt que d'animer pendant la durée spécifiée.

Quelqu'un peut-il suggérer ce qui pourrait être faux? Peut-être que l'animation sur des vues superposées est plus complexe avec des blocs que je ne le pensais.

Répondre

0

L'animation de noyau a un comportement intéressant lorsque des animations simultanées affectent la même vue ... Si vous essayez d'animer une vue avant la fin de la dernière animation, elle supposera que l'animation suivante commence à partir de l'état final souhaité. le premier. Cela peut entraîner des sauts de cadres ainsi que des sauts de valeurs alpha.

Dans votre cas, cette vue est probablement animée par autre chose. Essayez de localiser et supprimer l'autre animation/ou dans UIViewAnimationOptionBeginFromCurrentState à ses options.