在MapView动画上叠加

时间:2014-03-18 12:00:43

标签: ios iphone mkmapview overlay mkoverlay

我添加一个叠加(多个坐标数组)并绘制路径。

它完美无缺,但我希望(如果可能的话)用动画绘制路径(通过坐标坐标,或淡入等等)

我的应用只适用于iOS 7或更高版本。

这是我的方法:

- (void)drawPathWithAnnotations:(NSArray*)annotations
{
    CLLocationCoordinate2D array[[annotations count]];

    for (CLLocation *loc in annotations)
    {
        array[[annotations indexOfObject:loc]] = CLLocationCoordinate2DMake(loc.coordinate.latitude, loc.coordinate.longitude);
    }

    self.routeLine = [MKPolyline polylineWithCoordinates:array count:[annotations count]];

    [self.mapview addOverlay:self.routeLine];
}

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{
    if(overlay == self.routeLine){

        MKPolylineRenderer* lineView = [[MKPolylineRenderer alloc] initWithPolyline:self.routeLine];
        lineView.strokeColor = UIColorFromRGB(kAppTintColor);
        lineView.lineWidth = 3;

        return lineView;
    }

    return nil;
}

- (void)mapView:(MKMapView *)mapView didAddOverlayRenderers:(NSArray *)renderers
{
   // Animation here ? 
}

谢谢,任何建议或想法都表示赞赏! :)

1 个答案:

答案 0 :(得分:0)

我一直在寻找你的问题的答案,并没有找到一个被接受的答案,所以这是我的解决方案。您可以认为didAddOverlayRenderers是您放置动画的地方。以下是如何为叠加层设置“淡入淡出”动画的示例:

CASE WHEN F.END_DATE IS NOT NULL OR F.REASON IS NOT NULL  THEN '0' ELSE '1' END Enrolled'