0

我有一个带有 2 个圆圈的 mapView。当我尝试定制大的时,小的似乎跟随大的。例如,如果我为大的自定义填充颜色,则较小的填充颜色相同。如何使较小的具有不同的颜色?注意:我使用可重用的标识符。谢谢..这是我的工作代码,但是当我尝试编辑我的小圆圈时,半径为 100 的圆圈没有。注意:这是我的工作代码,因为我尝试过的任何其他方法都失败了。

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay {
static NSString *CircleOverlayIdentifier = @"Circle";

_mapView.delegate = self;

if ([overlay isKindOfClass:[CircleOverlay class]]) {
    CircleOverlay *circleOverlay = (CircleOverlay *)overlay;

    MKCircleView *annotationView =
    (MKCircleView *)[mapView dequeueReusableAnnotationViewWithIdentifier:CircleOverlayIdentifier];

    if (!annotationView) {
        MKCircle *circle = [MKCircle
                            circleWithCenterCoordinate:circleOverlay.coordinate
                            radius:circleOverlay.radius];
        annotationView = [[MKCircleView alloc] initWithCircle:circle];
        //this one

    }


    if (overlay == self.targetOverlay) {
        //adjustable
        annotationView.fillColor = [UIColor colorWithRed:1.0f green:0.0f blue:0.0f alpha:0.3f];
        annotationView.strokeColor = [UIColor redColor];
        annotationView.lineWidth = 1.0f;
    } else {
        //fixed
        annotationView.fillColor = [UIColor colorWithWhite:0.3f alpha:0.3f];
        annotationView.strokeColor = [UIColor purpleColor];
        annotationView.lineWidth = 2.0f;


    }

    return annotationView;
}

return nil;
}

- (void)configureOverlay {
if (self.location) {
    [self.mapView removeAnnotations:[self.mapView annotations]];        
    [self.mapView removeOverlays:[self.mapView overlays]];


    CircleOverlay *overlaysmall = [[CircleOverlay alloc] initWithCoordinate:self.location.coordinate radius:100];
    [self.mapView addOverlay:overlaysmall];

    _targetOverlaySmall = overlaysmall;

    CircleOverlay *overlay = [[CircleOverlay alloc] initWithCoordinate:self.location.coordinate radius:self.radius];
    [self.mapView addOverlay:overlay];

    GeoQueryAnnotation *annotation = [[GeoQueryAnnotation alloc] initWithCoordinate:self.location.coordinate radius:self.radius];
    [self.mapView addAnnotation:annotation];

    [self updateLocations];
    }
}
4

0 回答 0