Автоматическая аннотация "canShowCallOut" IPHONE - PullRequest
4 голосов
/ 20 марта 2010

Каким образом я могу вызвать функцию, которая автоматически открывает мою аннотацию (с заголовком, подзаголовком и т. Д.), А не касаться аннотации в просмотре карты?

Ответы [ 2 ]

4 голосов
/ 21 марта 2010

Реализация MKMapViewDelegate делегат;

Реализация - (MKAnnotationView *) mapView: (MKMapView *) mapView_ viewForAnnotation: (id <MKAnnotation>) annotation_;; например, вот так:

    - (MKAnnotationView *) mapView: (MKMapView *) mapView_ viewForAnnotation: (id <MKAnnotation>) annotation_ {

    MKPinAnnotationView *pin = (MKPinAnnotationView *) [self.mapView dequeueReusableAnnotationViewWithIdentifier: @"YourPinId"];
    if (pin == nil) {
        pin = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation_ reuseIdentifier: @"YourPinId"] autorelease];
    }
    else {
        pin.annotation = annotation_;
    }
    pin.pinColor = MKPinAnnotationColorRed;
    [pin setCanShowCallout:YES];
    pin.animatesDrop = YES;
    return pin;
}

Показать пин-код после завершения загрузки карты:

- (void) dropPin {
    [mapView addAnnotation:self.annotation];
    [mapView selectAnnotation:self.annotation animated:YES];        
}

- (void) mapViewDidFinishLoadingMap: (MKMapView *) mapView_ {
    // if done loading, show the call out
    [self performSelector:@selector(dropPin) withObject:nil afterDelay:0.3];
}

Этот код имеет свойство под названием annotation, которое реализует MKAnnotation. Кроме того, он также оживляет падение булавки, но это должно быть довольно самообъяснимо.

НТН.

3 голосов
/ 10 января 2012

Альфонс ответил на вопрос, но если вы ищете, что именно автоматически открывает выноску, вот эта часть:

[mapView selectAnnotation:annotation animated:YES]; 
...