Mar 30
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.
Ultimi Commenti