0

私は2つの円を持つmapViewを持っています。大きなものをカスタマイズしようとすると、大きなものに小さなものがついてくるようです。たとえば、大きい方の塗りつぶしの色をカスタマイズすると、小さい方は同じ色になります。小さい方を別の色にするにはどうすればよいですか?注: 再利用可能な識別子を使用します。ありがとう..これは私の作業コードですが、小さな円を編集しようとすると、半径100の円は編集されません。注:これは私のWORKINGコードです。他の試みは失敗しました。

- (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