3

ここに画像の説明を入力マップにピン注釈としてドットがあり、カスタム注釈ビューを表示しています。私の問題は、ドットをクリックすると、カスタム注釈ビューの背後にあるドットが、その背後に表示されるのではなく、カスタム注釈ビューの前に表示されることがあることです。

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{ 
    MKAnnotationView *annotationView;
    PinAnnotationView *pinView = nil;
    NSString *identifier;
    if ([annotation isKindOfClass:[DisplayMap class]]) 
    {
        identifier = @"Pin";
        NSInteger myid = ((DisplayMap *)annotation).takeid;
        MKAnnotationView *pinView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
        DisplayMap *a = (DisplayMap *)annotation;
        pinView.annotation=a;
        if (myid == 1) 
        {
           UIImage *test = [UIImage imageNamed:@"red_dot.png"];
           pinView.image = test;
           pinView.opaque = NO;
       }
       else if (myid == 2)
       {
           UIImage *test = [UIImage imageNamed:@"blue_dot.png"];
           pinView.image = test;
           pinView.opaque = NO;
       }
       else {
           UIImage *test = [UIImage imageNamed:@"green_dot.png"];
           pinView.image = test;
           pinView.opaque = NO;
       }
    return pinView;
  }
  else if ([annotation isKindOfClass:[CalloutAnnotation class]])
  {
       identifier = [NSString stringWithFormat:@"Callout%d",pinView.tag];
       annotationView = [[CalloutAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
       CalloutAnnotation *calloutAnnotation = (CalloutAnnotation *)annotation;
       ((CalloutAnnotationView *)annotationView).title = calloutAnnotation.title;
       ((CalloutAnnotationView *)annotationView).iTag = calloutAnnotation.iTag;
       [annotationView setNeedsDisplay];
       [UIView animateWithDuration:0.5f
                     animations:^(void) {
                         mapView.centerCoordinate = calloutAnnotation.coordinate;
                     }];
       annotationView.annotation = annotation;
       return annotationView;
  }
}


-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view1
{
    if ([view1.annotation isKindOfClass:[DisplayMap class]])
    {
    DisplayMap *pinAnnotation = ((DisplayMap *)view1.annotation);
    LoginDetail *obj =    [[appDelegate mapArray] objectAtIndex:pinAnnotation.iTag];
    [mapView removeAnnotations:annotationRemoveArray];

    CalloutAnnotation *calloutAnnotation = [[CalloutAnnotation alloc] init];
    calloutAnnotation.title      = pinAnnotation.title;
    pinAnnotation.calloutAnnotation = calloutAnnotation;
    [mapView addAnnotation:calloutAnnotation];
    [annotationRemoveArray addObject:calloutAnnotation];
    [self setzoomonselectannotation:pinAnnotation.coordinate];
    }
}
4

1 に答える 1