Inserire animazione boing in un MKMapViewDelegate

iPad, iPhone, Object-C Soft! Commenta l'articolo


Come è possibile intuire dal titolo, quest’oggi vi fornisco un po’ di codice per realizzare una simpatica animazione per il puntatore della posizione in una mappa.
Senza che vi dico che dovrete fare il controller come delegato per la classe MKMapView, scriviamo il metodo:

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views 

Il metodo permette di effettuare qualsiasi operazione quando si aggiunge un puntatore (MKAnnotation).

Scriviamo il codice per effettuare l’animazione:

MKAnnotationView *aV; 
    for (aV in views) {
        CGRect endFrame = aV.frame;
        
        aV.frame = CGRectMake(aV.frame.origin.x, aV.frame.origin.y - 230.0, aV.frame.size.width, aV.frame.size.height);
        
        [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
        [UIView animateWithDuration:0.3 animations:^(void) {
            aV.frame = endFrame;
         } completion:^(BOOL finished) {   
             [UIView animateWithDuration:0.1 animations:^(void) { 
            aV.transform = CGAffineTransformMakeScale(1.5, 0.8);        
                } completion:^(BOOL finished) {
                    [UIView animateWithDuration:0.1 animations:^(void) {
                        aV.transform = CGAffineTransformMakeScale(0.8, 1.1);        
                    } completion:^(BOOL finished) {
                        [UIView animateWithDuration:0.1 animations:^(void) {
                            aV.transform = CGAffineTransformMakeScale(1.0, 1.0);        
                        } completion:nil];                    
                    }];        
                }];
         }];       
    }

Il ciclo scorre tutti i puntatori (MKAnnotation) e per ognuno tiene traccia della posizione attuale, lo posiziona a 230 px in alto per poi applicare diverse animazioni per il boing.
L’effetto che otterrete è quello del puntatore che si deforma al contatto del terreno. Vedetelo in azione.

Buon lavoro.

Scrivi un Commento

Home | Graffiti e Disegni | Educazione | Chi siamo | Blog | Progetti | Contatti
RSS Feed Comments RSS Accedi