MKAnnotationView не показывает выноску - PullRequest
2 голосов
/ 17 ноября 2011

Я пытаюсь заставить MKMapView показать булавку с пузырем выноски. Я получил пин-код для отображения, но я просто не могу понять, как отобразить выноску.

Вот мой код:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation {
    if (annotation == mapView.userLocation) {
        return nil;
    }
    MKPinAnnotationView *pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Pin"];
    pinView.pinColor = MKPinAnnotationColorGreen;
    [pinView setCanShowCallout:YES];
    pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    pinView.animatesDrop = YES;
    [self performSelector:@selector(displayPinCallOutView) withObject:nil afterDelay:0.3];
    return pinView;
}

1 Ответ

5 голосов
/ 17 ноября 2011

Если вы пытаетесь отобразить выноску, как только аннотация добавляется на карту, вы должны сделать это с помощью метода делегата didAddAnnotationViews:

-(void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
    //Get reference to annotation you want to select...
    //You could search through mapView.annotations array
    //or keep ivar reference to it.
    id<MKAnnotation> annToSelect = ...

    [mapView selectAnnotation:annToSelect animated:YES];
}

Удалите performSelector из метода viewForAnnotation.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...