2014-11-17 35 views
2

我想如下RMMarker *marker = [[RMMarker alloc] initWithUIImage:lImage anchorPoint:lPoint];动画效果标记注释

我得到我的地图也没有问题的静态图像与动画图片初始化一些标记。 现在,我需要它比其他注释更明显,所以我想让它闪烁。

这是我已经尝试过:

注释层

[CATransaction begin]; 
[CATransaction setAnimationDuration:0.70]; 
[CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 

CABasicAnimation *bounceAnimation = [CABasicAnimation animationWithKeyPath:@"transform"]; 
bounceAnimation.repeatCount = MAXFLOAT; 
bounceAnimation.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.1, 1.1, 1.0)]; 
bounceAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.8, 0.8, 1.0)]; 
bounceAnimation.removedOnCompletion = NO; 
bounceAnimation.autoreverses = YES; 

[layer addAnimation:bounceAnimation forKey:@"animateScale"]; 

[CATransaction commit]; 

这是运作良好,只是因为它共享相同的层我的标注视图也闪烁在创建规模的动画(和在跟踪模式下,Mapbox会与动画混淆,导致方向不正确,因为它随用户的每次移动而重置)。

创建注释层

[CATransaction begin]; 
[CATransaction setAnimationDuration:0.60]; 
[CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 

CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; 
opacityAnimation.repeatCount = MAXFLOAT; 
opacityAnimation.fromValue = [NSNumber numberWithFloat:1.0]; 
opacityAnimation.toValue = [NSNumber numberWithFloat:0.3]; 
opacityAnimation.removedOnCompletion = NO; 
opacityAnimation.autoreverses = YES; 

[layer addAnimation:opacityAnimation forKey:@"animateOpacity"]; 

[CATransaction commit]; 

上闪烁的动画这是不太明显,但注释方向是正确的这个时候。尽管如此,我仍然在图层上标注了我的标注视图。

我想做

我需要一种方式,而不会影响层的动画标记图像是什么。

我会使用将是第一个我试过了,没有旋转问题的最佳动画。

到目前为止,我不能动画的UIImage,因为它不具备addAnimation: forKey:电话。

我从来没玩过多少带有动画,所以任何帮助或指导,将不胜感激。

回答

0

你是正确的轨道上CABasicAnimation,因为这是用于在SDK中的动画用户位置的注释。你可以在这里看到:

https://github.com/mapbox/mapbox-ios-sdk/blob/509fa7df46ebd654d130ab2f530a8e380bf2bd59/MapView/Map/RMMapView.m#L3593

你能否解释一下?

此运作良好,所不同的是我的标注视图也闪烁,因为它共享相同的层(和Mapbox与跟踪模式期间的动画打乱,导致不正确的方向,因为它是与每一个移动reseted用户无论如何)。

你确实提出了一个好点,标注是一个子图层,所以它也会闪烁。这个用例还没有被考虑过 - 你有可能取消你的注释并隐藏标注吗?

但什么是后半部分是什么意思?

+0

是的,我被你的动画用户注释尝试动画自己的自定义注释的方式启发。不幸的是,我需要注释来标注(我给它设置动画以向用户显示他可能想要了解的更多信息)。对于后者,它与你回答的问题[here](http:// stackoverflow。com/questions/21754379/mapbox-annotation-layer-rotation-resets-on-map-zoom-or-move)(但是我不清楚应该修改什么) – user2700551