【问题标题】:Bounce Animation on Google Map Marker in iOS ?? [Objective-c]iOS 中 Google 地图标记上的弹跳动画 ?? [目标-c]
【发布时间】:2016-11-11 07:25:07
【问题描述】:

我想在 iOS 中的 Google Map Marker 上制作 Continuos Bounce 动画。

[动画如下链接,点击标记-->],

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

【问题讨论】:

    标签: ios objective-c google-maps animation


    【解决方案1】:

    我想在 Google 地图上添加标记,它会以动画形式显示当前用户。 我无法像上面提到的链接那样获得精确的反弹动画,以另一种方式突出显示我使用缩放动画所做的标记。
    像这样 ...

    要获得这样的动画。这样做

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

    这可能会解决寻找此类动画的人的问题。

    【讨论】:

      猜你喜欢
      • 2018-08-01
      • 2013-01-17
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      相关资源
      最近更新 更多