为MKPolyline或MKPolylineView设置动画

时间:2013-10-25 14:03:14

标签: xcode animation calayer mkoverlay

我不知道如何做到这一点,或者即使可以做到这一点,但我想在我的地图上为连接两个点(A& B)的蓝线设置动画

我已经研究了一些关于如何围绕地图上的点设置圆形动画的教程,但我无法设置动画线(MKPolyline

这是我想用作MKPolyline

的动画
  UIImage *textImage = [UIImage imageNamed:@"lineImage.png"];
  CGFloat textWidth = textImage.size.width;
  CGFloat textHeight = 5.0f;

  CALayer *textLayer = [CALayer layer];
  textLayer.contents = (id)[textImage CGImage];
  textLayer.frame = CGRectMake(10.0f, 215.0f, textWidth, textHeight);
  CALayer *maskLayer = [CALayer layer];

  // Mask image ends with 0.15 opacity on both sides. Set the background color of the layer
  // to the same value so the layer can extend the mask image.
  maskLayer.backgroundColor = [[UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.15f] CGColor];
  maskLayer.contents = (id)[[UIImage imageNamed:@"mask.png"] CGImage];

  // Center the mask image on twice the width of the text layer, so it starts to the left
  // of the text layer and moves to its right when we translate it by width.
  maskLayer.contentsGravity = kCAGravityCenter;
  maskLayer.frame = CGRectMake(-textWidth, 0.0f, textWidth * 2, textHeight);

  // Animate the mask layer's horizontal position
  CABasicAnimation *maskAnim = [CABasicAnimation animationWithKeyPath:@"position.x"];
  maskAnim.byValue = [NSNumber numberWithFloat:textWidth];
  maskAnim.repeatCount = HUGE_VALF;
  maskAnim.duration = 1.0f;
  [maskLayer addAnimation:maskAnim forKey:@"slideAnim"];

  textLayer.mask = maskLayer;
  [self.view.layer addSublayer:textLayer];

是否有可能以某种方式将其转换为MKOverlayView

0 个答案:

没有答案