2016-11-11 22 views
6

Chcę animacji Continuos Bounce na Google Map Marker w iOS.Bounce Animacja na Google Map Marker w iOS? [Objective-c]

[animacja jak poniższy link, kliknij na Marker ->],

https://developers.google.com/maps/documentation/javascript/examples/marker-animations

możemy realizować tę animację odbicie w iPhone?

Jestem Tworzenie Marker z animowanym pojawiać się, ale chcę animować marker z Bounce Effect Continuously.

GMSMarker *marker = [GMSMarker markerWithPosition:position]; 
marker.title = @"Delhi"; 
marker.zIndex=1; 
marker.icon=[UIImage imageNamed:@"marker_user.png"]; 
// This is Only AppearAniamtion 
marker.appearAnimation = kGMSMarkerAnimationPop; 
marker.infoWindowAnchor = CGPointMake(0.44f, 0.30f); 
marker.map = mapView_; 

Odpowiedz

1

Chciałem dodać znacznik na mapie Google, który będzie animowany do wskazanego bieżącego użytkownika. Nie udało mi się uzyskać dokładnej animacji odskoku, jak powyższy link, na alternatywny sposób zaznaczania znacznika zrobiłem przy użyciu animacji skali.
w ten sposób ... enter image description here

Aby uzyskać animację w ten sposób. lubię tego

GMSMarker *markerUser; 
NSTimer *timer; 
int imageScale; 

Dodaj znacznik mapa

imageScale=15; 

    CLLocationCoordinate2D position = CLLocationCoordinate2DMake(Userlat, Userlng); 
    markerUser = [GMSMarker markerWithPosition:position]; 
    markerUser.title = @"You are here"; 
    markerUser.icon=[self image:[UIImage imageNamed:@"marker_user.png"] scaledToSize:CGSizeMake(25.0f,40.0f)]; // Initial Marker Size 
    markerUser.appearAnimation = kGMSMarkerAnimationPop; 
    markerUser.infoWindowAnchor = CGPointMake(0.44f, 0.30f); 
    markerUser.map = mapView_; 

start timera gdy znacznik jest dodawany na mapie, a następnie zmienić ikonę znacznika o różnej wielkości.

timer = [NSTimer scheduledTimerWithTimeInterval:0.1 
            target:self 
            selector:@selector(targetMethod:) 
            userInfo:nil 
            repeats:YES]; 

na każde 0,1 sekundy tragetMethod zostanie zwolniony, tutaj można skala obraz ikona i przypisanie do markera ikonę

-(void)targetMethod:(NSTimer *)timer { 

    if (imageScale<30) { 

     markerUser.icon=[self image:[UIImage imageNamed:@"marker_user.png"] scaledToSize:CGSizeMake(imageScale,imageScale*1.5)]; 

     imageScale+=1; 

    } 
    else{ 
     imageScale=15; 

     markerUser.icon=[self image:[UIImage imageNamed:@"marker_user.png"] scaledToSize:CGSizeMake(imageScale,imageScale*1.5)]; 
    } 

} 

i tutaj jest metoda że będzie skalaswójUIImage

- (UIImage *)image:(UIImage*)originalImage scaledToSize:(CGSize)size 
{ 
    //avoid redundant drawing 
    if (CGSizeEqualToSize(originalImage.size, size)) 
    { 
     return originalImage; 
    } 

    //create drawing context 
    UIGraphicsBeginImageContextWithOptions(size, NO, 0.0f); 

    //draw 
    [originalImage drawInRect:CGRectMake(0.0f, 0.0f, size.width, size.height)]; 

    //capture resultant image 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    //return image 
    return image; 
} 

Może to rozwiązać problem facetów szukających takiej animacji.