MKPolyline仅在移动地图时显示

我有一个MKMapView有一些引脚。 我用MKPolyline视图连接引脚。 但是,只有当我移动地图时(MapView被更新时)才显示MKPolyline 。 我想从一开始就看到MKPolyline

请检查以下代码:

 -(void)plotSnapPosition { for (id<MKAnnotation> annotation in myMapView.annotations) { [myMapView removeAnnotation:annotation]; } for (id<MKOverlay> overlay in myMapView.overlays) { [myMapView removeOverlay:overlay]; } NSArray *snaps = self.entry.snapsArray; CLLocationCoordinate2D *locations = malloc(sizeof(CLLocationCoordinate2D) * snaps.count); NSInteger counter = 0; for (Snap *snap in snaps) { locations[counter] = [snap coordinates]; CLLocationCoordinate2D c = [snap coordinates]; CAHAnnotation *annotation = [[CAHAnnotation alloc] initWithDate:snap.timeAsString coordinate:c counter:counter]; [myMapView addAnnotation:annotation]; counter++; } MKPolyline *polyline = [MKPolyline polylineWithCoordinates:locations count:snaps.count]; MKPolylineView *routeLineView = [[MKPolylineView alloc] initWithPolyline:polyline]; routeLineView.fillColor = [UIColor redColor]; routeLineView.strokeColor = [UIColor redColor]; routeLineView.lineWidth = 5; [myMapView setVisibleMapRect:polyline.boundingMapRect]; [self.myMapView addOverlay:polyline]; } -(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay { if ([overlay isKindOfClass:[MKPolyline class]]) { MKPolylineView *routeLineView = [[MKPolylineView alloc] initWithPolyline:overlay]; routeLineView.fillColor = [UIColor blueColor]; routeLineView.strokeColor = [UIColor blueColor]; routeLineView.lineWidth = 3; return routeLineView; } return nil; } 

对于testing问题,我已经将方法-(void)plotSnapPosition中的MKPolyline的颜色设置为红色。 在代表我把它设置为蓝色。 移动地图后,只显示蓝色。

有人能帮我解决这个问题吗? 我认为这只是一个小错误。 谢谢。

这里是截图:

两个引脚

移动地图后:

移动地图之后的path

确保添加叠加之前设置mapView的委托。 所以,在你的情况

 mapView.delegate = self; [self plotSnapPosition]; 

您是否尝试在完成绘图时添加[overlayView setNeedsDisplay]调用?