首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反弹动画在谷歌地图标记在iOS?[目标-c]

反弹动画在谷歌地图标记在iOS?[目标-c]
EN

Stack Overflow用户
提问于 2016-11-11 07:25:07
回答 1查看 2.3K关注 0票数 7

我想要一个连续弹跳动画在谷歌地图标记在iOS。

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

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

我们能在iPhone中实现这个弹跳动画吗?

我正在创建标记与动画出现,但我想动画标记与反弹效果持续。

代码语言:javascript
复制
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_;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-20 13:26:35

我想添加标记在谷歌地图,将动画指示当前用户。我无法得到准确的弹跳动画,如上面我提到的链接,作为替代的方式突出标记,我所做的使用比例动画。

像这样..。

才能得到这样的动画。就像这样

代码语言:javascript
复制
 GMSMarker *markerUser;
 NSTimer *timer;
 int imageScale;

在地图上添加标记

代码语言:javascript
复制
 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_;

当在地图上添加标记时,启动计时器,并更改不同大小的标记的图标。

代码语言:javascript
复制
 timer =  [NSTimer scheduledTimerWithTimeInterval:0.1
                                     target:self
                                   selector:@selector(targetMethod:)
                                   userInfo:nil
                                    repeats:YES];

每0.1秒就会触发一次tragetMethod,在这里您可以缩放图标图像并重新分配到标记图标

代码语言:javascript
复制
-(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

代码语言:javascript
复制
- (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;
}

这可能会解决男人寻找这样的动画的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40543095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档