2016-11-11 68 views
6

我想要iOS上的Google地图标记器上的Continuos Bounce动画。iOS上的Google地图标记反弹动画? [Objective-c]

[动画像下面的链接,点击标记 - >],

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

我们可以实现在iPhone这个反弹动画?

我正在用动画出现创建标记,但我想连续弹出效果动画标记。

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_; 

回答

1

我想在Google地图上添加标记,该标记将动画显示当前用户。 我无法像上面提到的链接那样获得确切的跳动动画,这是替代方式来突出显示我使用缩放动画制作的标记。
这样子... enter image description here

要得到这样的动画。就这样

GMSMarker *markerUser; 
NSTimer *timer; 
int imageScale; 

添加标记地图

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_; 

启动计时器当标记在地图上添加和更改标记的图标具有不同的尺寸。

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

每0.1秒tragetMethod将被解雇的,在这里你可以规模的图标图像并重新分配给标记图标

-(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)]; 
    } 

} 

这里是方法将规模的UIImage

- (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; 
} 

这可能解决寻找这种动画的人的问题。